Большой Воронежский Форум
Страница 22 из 43
« Первая < 1216171819202122 23242526272832 > Последняя »
»Радиолюбитель>PIC контроллеры. Программаторы и первый проект на PIC
Butik 20:54 11.11.2010
Кстати.... У меня теги тоже чего то не вставляются-может глюк сервера может еще что.. и никаких быстрых кнопок у меня на странице не появляется.. Так что прошу отнестись к этому с пониманием.. Так как уходить пока никуда не собираюсь...
И при чем тут культура общения?- если написанный текст или код не содержит никаких оскорбительных или прочих моментов- так какая разница в тегах он или нет? [Ответ]
petrd 10:47 12.11.2010

Сообщение от Butik:
Кстати.... У меня теги тоже чего то не вставляются-может глюк сервера может еще что.. и никаких быстрых кнопок у меня на странице не появляется.. Так что прошу отнестись к этому с пониманием.. Так как уходить пока никуда не собираюсь...

Как пример можно здесь глянутьhttp://www.microchip.su/showpost.php?p=1144&postcount=1
На БВФ не все теги правильно настроены, но [CODE] работает. Во всяком случае можно и руками их писать.

Сообщение от Butik:
И при чем тут культура общения?- если написанный текст или код не содержит никаких оскорбительных или прочих моментов- так какая разница в тегах он или нет?

Ну если так подходить, то вообще можно без оскорблений весть текст и код написать в одну строку, а потом обижаться, что никто не подсказывает. Нафига кому-то тратить время на колупание в сплошном тексте и выковыривание лишнего, чтобы только добраться до смысла написанного? Так что разница есть. [Ответ]
Butik 22:33 13.11.2010
... ну в принципе согласен.... аргументы у Вас коллега железные...
Вот сейчас и проверим... в смысле напишется теги как надо или нет...)))
Вот вопросик возник... Я еще не совсем силен в СИ - вот как например написать на СИ подобный фрагмент на ассемблере- программа в зависимости от изменения уровня на входе контроллера переключает другой вывод на режим входа или выхода- выставляет в 1 вывод при работе как выход(например заряд емкости) или читает его состояние при работе как вход...В принципе алгоритм не имеет почти никакого практического значения но может быть использован как фрагмент программы например примитивного АЦП без претензий на большую точность или для построения простейших девайсов где необходим аналоговый ввод...


Код:
list      p=12f629           
    #include <p12f629.inc>        

    errorlevel  -302             

    __CONFIG   _CP_OFF & _CPD_OFF & _BODEN_ON & _MCLRE_OFF & _WDT_OFF& _PWRTE_ON & _INTRC_OSC_NOCLKOUT  

;***** VARIABLE DEFINITIONS
    
 cblock 0x20
    Toggler   
 endc
;**********************************************************************
        ORG     0x000             ; processor reset vector
        goto    main              ; go to beginning of program

;***********************************************************************
  main
;начальная инициализация
        movf   GPIO,f
        movlw  0x07
        movwf  CMCON      
        bsf    STATUS,RP0   
        movlw  b'00101011'
        movwf  TRISIO
        movlw  b'10000101'
        movwf OPTION_REG
        bcf   STATUS,RP0       
        movlw    0x20    
         movwf    Toggler             
 ;-----------------------------------------------------------
       
 Loop
    movf    GPIO,w            
    andlw    0x20
    xorwf    Toggler,w    
    btfss    STATUS,Z
    goto    Loop        
    clrf TMR0        
    movlw    0x20    
    xorwf    Toggler,f
    btfss    Toggler,5    
    goto    Loop1       
    btfsc    Toggler,5    
    goto    Loop2    
    goto    Loop

;-------------------------------------------------
  Loop1
        nop
        bsf STATUS,RP0
        movlw b'00101001'
        movwf TRISIO
        bcf STATUS,RP0
        bsf GPIO,1
        goto Loop
;------------------------------------------------------------
  Loop2
        nop
        movf GPIO,f 
        bcf GPIO,1         
        bsf STATUS,RP0
        movlw b'00101011'   
        movwf TRISIO
        bcf STATUS,RP0
        goto Loop
;------------------------------------------------------------
        END   ; directive 'end of program'
[Ответ]
Butik 22:34 13.11.2010
)))) вместо тегов цитата вставилась.... хреновина какая то)))))

кстати в асме этот фрагмент работает- и в железе тоже... проверено [Ответ]
Butik 22:55 13.11.2010
В железе правда не проверял- в протеусе погонял слегка- вроде работает...
При старте устанавливается автоматом минимальный уровень... но я думаю не проблема сделать по любому...

А на счет тегов- у меня не всегда включается расширенный режим при написании сообщения- видимо глюк сервера или сайта [Ответ]
Butik 20:47 15.11.2010
с этих компиляторов с ума сойти можно.... капец какой то...

l
Код:
ist      p=12f629           
    #include <p12f629.inc>        

    errorlevel  -302             

    __CONFIG   _CP_OFF & _CPD_OFF & _BODEN_ON & _MCLRE_OFF & _WDT_OFF& _PWRTE_ON & _INTRC_OSC_NOCLKOUT  

;***** VARIABLE DEFINITIONS
    
 cblock 0x20
    Toggler   
 endc
;**********************************************************************
        ORG     0x000             ; processor reset vector
        goto    main              ; go to beginning of program

;***********************************************************************
  main
;начальная инициализация
        movf   GPIO,f
        movlw  0x07
        movwf  CMCON      
        bsf    STATUS,RP0   
        movlw  b'00101011'
        movwf  TRISIO
        movlw  b'10000101'
        movwf OPTION_REG
        bcf   STATUS,RP0       
        movlw    0x20    
         movwf    Toggler             
 ;-----------------------------------------------------------
       
 Loop
    movf    GPIO,w            
    andlw    0x20
    xorwf    Toggler,w    
    btfss    STATUS,Z
    goto    Loop        
    clrf TMR0        
    movlw    0x20    
    xorwf    Toggler,f
    btfss    Toggler,5    
    goto    Loop1       
    btfsc    Toggler,5    
    goto    Loop2    
    goto    Loop

;-------------------------------------------------
  Loop1
        nop
        bsf STATUS,RP0
        movlw b'00101001'
        movwf TRISIO
        bcf STATUS,RP0
        bsf GPIO,1
        goto Loop
;------------------------------------------------------------
  Loop2
        nop
        movf GPIO,f 
        bcf GPIO,1         
        bsf STATUS,RP0
        movlw b'00101011'   
        movwf TRISIO
        bcf STATUS,RP0
        goto Loop
;------------------------------------------------------------
        END   ; directive 'end of program'
вот все тот же фрагмент откомпилировал в CCS PICC - все работает!!!!! И в железе тоже!!!

Код:
#include "C:\Microchip\_Project_\1c\main.h"

#use fast_io(A)

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   set_tris_A(0x28);

do{
if(input(PIN_A5)== 1) set_tris_A(0x28), output_bit(PIN_A1,1);
if(input(PIN_A5)== 0) set_tris_A(0x2A);
}while(1);  
  
}

А вот так в MikroC не работает!!!!

Код:
unsigned short old_GPIO ;



void init() {
  CMCON  = 0x07; // все выводы контроллера-цифровые
  TRISIO   = 0b00101000;/* настройка GPIO.2- GPIO.3 на ввод,
  остальные- на вывод*/
  WPU      = 0x00; //Подтягивающие резисторы выключены
  INTCON.INTE  = 1;      // внешнее прерывание разрешено
  INTCON.T0IE  = 0;      // прерывание от TMR0 запрещено
  OPTION_REG = 0b11000101;/* подтягивающие резисторы выключены,
  коэффициент деления предделителя таймера 1:64*/
  INTCON.GIE        = 0; // глобальное разрешение прерываний

   }
 // ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ
void main() {
init() ;  // Начальная инициализация
   do {
    old_GPIO = GPIO;
    if(old_GPIO.F5 = 1) TRISIO = 0x28,
    old_GPIO.F1=1, GPIO = old_GPIO;
    if (old_GPIO = 0) TRISIO = 0x2A;
    }  while(1);
}
как будто это не одно и тоже!!!!!!
или это глюк компилятора?????
[Ответ]
petrd 21:29 15.11.2010

Сообщение от Butik:
с этих компиляторов с ума сойти можно.... капец какой то...

Конечно не одно и тоже, в Си при сравнении на равенство надо писать "==" .
А почему операторы через запятую? Каждый оператор должен точкой с запятой оканчиваться.
Код:
if(input(PIN_A5)== 1) set_tris_A(0x28), output_bit(PIN_A1,1);
.......
 if(old_GPIO.F5 = 1) TRISIO = 0x28,
    old_GPIO.F1=1, GPIO = old_GPIO;
.......
И что компилятор на это не ругается?
[Ответ]
Butik 22:10 15.11.2010
исправил = на == -картина та же....Хотя и при = компилятор не ругался... А вот когда ставишь вместо запятой точку с запятой- ругается!!!!!!!!!!!!!!
И потом... если в CCS можно писать через запятую(и все работает!!!!)... то почему в MikroC нельзя????
У меня стоит MikroC 8200 [Ответ]
Butik 22:28 15.11.2010
Вот господа знатоки и подскажите как написать правильно... плиз... [Ответ]
Азат 07:22 16.11.2010
Доброе утро.
1.Ребят подскажите можно ли в Протеусе добавить инфракрасник и эмулировать нажатия клавиш с пульта.Если да то как.Заранее спасибо.
2.Как только не пробывал, никак не получается вывести на дисплей русское слово.Тестировал в Протеусе(может проблема в нем). [Ответ]
petrd 08:14 16.11.2010

Сообщение от Butik:
исправил = на == -картина та же....Хотя и при = компилятор не ругался...

Такие записи правильные, но смысл разный:
Код:
if(tmp == 1) {...}
читается - если tmp равно 1, то выполняется выражение в скобках, если не равно 1, то пропускается.
Код:
if(tmp = 1) {...}
читается - tmp присвоить 1 и если tmp не равно 0 (а оно всегда 1), то всегда будет выполняться условие в скобках.


Сообщение от Butik:
И потом... если в CCS можно писать через запятую(и все работает!!!!)... то почему в MikroC нельзя????

У запятой в в выражениях Си особый смысл, поэтому так делать не надо. Если надо, чтобы выполнилось несколько операторов, то их надо заключить в {......}, в паскале аналог begin.......end:
Код:
void main() {
init() ;  
   do {
    old_GPIO = GPIO;
    if(old_GPIO.F5 ==1) 
        {
          TRISIO = 0x28;
          old_GPIO.F1=1;
          GPIO = old_GPIO;
        }
    if (old_GPIO == 0)
          TRISIO = 0x2A;
    }  while(1);
}
[Ответ]
petrd 08:26 16.11.2010

Сообщение от Азат:
1.Ребят подскажите можно ли в Протеусе добавить инфракрасник и эмулировать нажатия клавиш с пульта.Если да то как.Заранее спасибо.

Не знаю. Делайте в железе избежите много проблем.

Сообщение от Азат:
2.Как только не пробывал, никак не получается вывести на дисплей русское слово.Тестировал в Протеусе(может проблема в нем).

Проблема не в Протеусе. Кодовые страницы компиляторов (т.е. ОС компьютера) не совпадают с таблицей знакогенераторов ЖКИ, отсюда и проблемы, т.е. надо их сопоставлять друг другу. Решений есть несколько. Как вариант - http://www.microchip.su/showpost.php...8&postcount=48
Применение для MikroC:
Код:
LCD_Out_Rus(1,1,"Привет");
[Ответ]
Азат 08:56 16.11.2010
Значит если я даже напишу по русски не факт что в протеусе выдет русский текст.Вот я попоробывал как вы сказали.Слово Привет.

Сообщение от :
void LCD_Out_Rus(char row, char column, char *text)
{
const unsigned char russian_HD44780[]={0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45,
0xA3, 0xA4, 0xA5, 0xA6, 0x4B, 0xA7,
0x4D, 0x48, 0x4F, 0xA8, 0x50, 0x43,
0x54, 0xA9, 0xAA, 0x58, 0xE1, 0xAB,
0xAC, 0xE2, 0xAD, 0xAE, 0x62, 0xAF,
0xB0, 0xB1, 0x61, 0xB2, 0xB3, 0xB4,
0xE3, 0x65, 0xB6, 0xB7, 0xB8, 0xB9,
0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE,
0x70, 0x63, 0xBF, 0x79, 0xE4, 0x78,
0xE5, 0xC0, 0xC1, 0xE6, 0xC2, 0xC3,
0xC4, 0xC5, 0xC6, 0xC7};

if (*text)
{
if (*text > 191)
Lcd_Chr(row, column, russian_HD44780[(*text) - 192]);
else
Lcd_Chr(row, column, *text);
}
else
return;
*text++;
while(*text)
{
if (*text > 191)
Lcd_Chr_Cp(russian_HD44780[(*text) - 192]);
else
Lcd_Chr_Cp(*text);
text++;
}
}
void main() {

Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); // назначение выводов ЖКИ - PIC
Lcd_Cmd(LCD_CURSOR_OFF);

do{
LCD_Out_Rus(1,1,"Привет");
delay_ms(1000);
Lcd_Cmd(Lcd_CLEAR);
}while (1);
}


Изображения
Нажмите на изображение для увеличения
Название: 2010-11-16_115415.jpg
Просмотров: 14
Размер:	7.0 Кб
ID:	1026850  
[Ответ]
petrd 09:09 16.11.2010

Сообщение от Азат:
Значит если я даже напишу по русски не факт что в протеусе выдет русский текст.Вот я попоробывал как вы сказали.Слово Привет.

У меня на столе сейчас лежит WH1602 и с этой функцией работает без проблем. Значит в Протеусе кодовая таблица для ЖКИ отличается от WH, поэтому надо перекодировать массив russian_HD44780[] под знакогенератор модели Протеуса. [Ответ]
Sedr 09:23 16.11.2010
Чтобы был русский в протеусе надо поменять библиотеку LCDALPHA.DLL в C:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS.
Изображения
[Ответ]
Азат 09:39 16.11.2010
Спасибо все заработало. [Ответ]
Азат 10:16 16.11.2010
Должно написаться в первой строке Инициализация.Во второй заполнить нулем.Как заполнить знаком черным квадратом вместо нуля.И вообще правильно ли я сделал.

Сообщение от :
unsigned char j=0;
void LCD_Out_Rus(char row, char column, char *text)
{
const unsigned char russian_HD44780[]={0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45,
0xA3, 0xA4, 0xA5, 0xA6, 0x4B, 0xA7,
0x4D, 0x48, 0x4F, 0xA8, 0x50, 0x43,
0x54, 0xA9, 0xAA, 0x58, 0xE1, 0xAB,
0xAC, 0xE2, 0xAD, 0xAE, 0x62, 0xAF,
0xB0, 0xB1, 0x61, 0xB2, 0xB3, 0xB4,
0xE3, 0x65, 0xB6, 0xB7, 0xB8, 0xB9,
0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE,
0x70, 0x63, 0xBF, 0x79, 0xE4, 0x78,
0xE5, 0xC0, 0xC1, 0xE6, 0xC2, 0xC3,
0xC4, 0xC5, 0xC6, 0xC7};

if (*text)
{
if (*text > 191)
Lcd_Chr(row, column, russian_HD44780[(*text) - 192]);
else
Lcd_Chr(row, column, *text);
}
else
return;
*text++;
while(*text)
{
if (*text > 191)
Lcd_Chr_Cp(russian_HD44780[(*text) - 192]);
else
Lcd_Chr_Cp(*text);
text++;
}
}
void main() {
CMCON = 7; // Все выводы цифровые входы-выходы
TRISA=0b11110111; // все выводы PORTA на вход, RA3 - выход
Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); // назначение выводов ЖКИ - PIC
Lcd_Cmd(LCD_CURSOR_OFF);
LCD_Out_Rus(1,1,"Инициализация");
while (1)
{
delay_ms(500);
j++;
LCD_Out(2,j,"0"); //Черный квадрат вместо нуля
if(j==16) {break ;} /* если условие if выполнилось, то прерываем выполнение цикла while */
}
while(1){Lcd_Cmd(Lcd_CLEAR);/* бесконечный цикл */};
}

[Ответ]
petrd 10:36 16.11.2010

Сообщение от Азат:
Как заполнить знаком черным квадратом вместо нуля.

В общем случае пользователь может сформировать до 8-ми своих символов в CGRAM. C квадратом проще, в Вашем случае вместо
Код:
LCD_Out(2,j,"0");
должно помочь:
Код:
Lcd_Chr(2, j, 0xff);
[Ответ]
Азат 10:48 16.11.2010
Да помогло.Только все это дело зависает на 15,09с в протеусе.С начала очищает экран,и протеус зависает. [Ответ]
petrd 11:14 16.11.2010

Сообщение от Азат:
Да помогло.Только все это дело зависает на 15,09с в протеусе.С начала очищает экран,и протеус зависает.

Может так?
Код:
while (1)
 {
   delay_ms(500);
   j++;
   if(j != 17) 
         LCD_Out(2,j,"0");
   else
     {
       j = 0;
       Lcd_Cmd(Lcd_CLEAR);
     }
  }
[Ответ]
Азат 11:29 16.11.2010
1.Почему в протеусе зависает?
2.Правильно ли я сделал нажатие кнопки?
3.Как сделать при первом нажатие надпись осталась,при втором убралась?
3.Как правильно очистить первую строку, чтоб не моргала?

Сообщение от :
#define SetBut Button(&PORTB, 7,10,0)
unsigned char j=0, i=0;
void LCD_Out_Rus(char row, char column, char *text)
{
const unsigned char russian_HD44780[]={0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45,
0xA3, 0xA4, 0xA5, 0xA6, 0x4B, 0xA7,
0x4D, 0x48, 0x4F, 0xA8, 0x50, 0x43,
0x54, 0xA9, 0xAA, 0x58, 0xE1, 0xAB,
0xAC, 0xE2, 0xAD, 0xAE, 0x62, 0xAF,
0xB0, 0xB1, 0x61, 0xB2, 0xB3, 0xB4,
0xE3, 0x65, 0xB6, 0xB7, 0xB8, 0xB9,
0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE,
0x70, 0x63, 0xBF, 0x79, 0xE4, 0x78,
0xE5, 0xC0, 0xC1, 0xE6, 0xC2, 0xC3,
0xC4, 0xC5, 0xC6, 0xC7};

if (*text)
{
if (*text > 191)
Lcd_Chr(row, column, russian_HD44780[(*text) - 192]);
else
Lcd_Chr(row, column, *text);
}
else
return;
*text++;
while(*text)
{
if (*text > 191)
Lcd_Chr_Cp(russian_HD44780[(*text) - 192]);
else
Lcd_Chr_Cp(*text);
text++;
}
}
void main() {
CMCON = 7; // Все выводы цифровые входы-выходы
TRISA=0b11110111; // все выводы PORTA на вход, RA3 - выход
Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); // назначение выводов ЖКИ - PIC
Lcd_Cmd(LCD_CURSOR_OFF);
LCD_Out_Rus(1,1," Инициализация");
while (1)
{
delay_ms(100);
j++;
Lcd_Chr(2, j, 0xff);
if(j==17) {break ;}
}
do {
LCD_Out(1,1," "); если поставить команду очистить то моргает?
if (SetBut) {
LCD_Out_Rus(2,1," Кнопка нажата ");
}
else{
LCD_Out_Rus(2,1,"Кнопка не нажата");
}
} while(1);
}

[Ответ]
petrd 20:35 16.11.2010

Сообщение от Азат:
1.Почему в протеусе зависает?
2.Правильно ли я сделал нажатие кнопки?
3.Как сделать при первом нажатие надпись осталась,при втором убралась?
4.Как правильно очистить первую строку, чтоб не моргала?

1. Сначала вопрос - почему не работает в Протеусе, потом будет - почему работает в Протеусе и не работает в железе. Протез он и есть протез, не доверяю ему.
2. Правильно.
3. Можно как-то так:
Код:
unsigned short oldstate, flag;
...........
flag = 0;
............
for(;;){
  if (Button(&PORTB, 7, 10, 1)) oldstate = 1;
  if (oldstate && Button(&PORTB, 7, 10, 0)) {
     flag = ~flag;
     oldstate = 0;
   }
  if (flag)
      LCD_Out_Rus(2,1," Надпись ");
  else
       LCD_Out_Rus(2,1,"                ");

}
4. Команда очистки ЖКИ очень долго выполняется (время см. в DS) и чистит весь экран, быстрее пробелами чистить нужные места :
Код:
 LCD_Out(1,1,"                "); // строка в 16 пробелов
[Ответ]
Butik 21:50 16.11.2010

Сообщение от :
Сначала вопрос - почему не работает в Протеусе, потом будет - почему работает в Протеусе и не работает в железе. Протез он и есть протез, не доверяю ему.

А чему тогда доверять? Иногда ж возникает потребность пощупать схему не воспроизводя в железе???? [Ответ]
Азат 13:35 17.11.2010
Ребят объясните пожалуйста
TRISA=0b11110111; // все выводы PORTA на вход, RA3 - выход
0b11110111 как понять что из них RA3 или где прочитать? [Ответ]
petrd 14:53 17.11.2010

Сообщение от Butik:
А чему тогда доверять? Иногда ж возникает потребность пощупать схему не воспроизводя в железе????

Железу. Это мое личное мнение и только. Кто с чем хочет, с тем пусть и работает это дело каждого. Слышал про глюки от других и лично с Протеусом наступал на грабли - модуль CCP в режиме запуска специального события не сбрасывал TMR1. Вот и выше у Азат зависает, вроде ничего такого по коду не видно, а виснет.

Азат

Сообщение от :
0b11110111 как понять что из них RA3 или где прочитать?

В DS где написано про регистры TRISx.
Кстати, со вчерашней проблемой разобрались? [Ответ]
petrd 15:03 17.11.2010
Для всех и для пишуших на ассемблере в частности. Очередной бестселлер от tester 'a под названием "Как правильно оформлять программы на ассемблере для PIC-контроллеров" http://www.microchip.su/showpost.php...04&postcount=1 [Ответ]
Азат 15:09 17.11.2010
Да спасибо огромное пробывал по разному, с кнопками поиграл.)
1.Петр где можно нормальный русский ds скачать(или если не трудно вложите здесь).
2.Подскажите пожалуйста как реализовать bmp рисунок чтоб отобразился на дисплее.Т.е хочеться чтоб на экране было 4 рисунка подряд ввиде 4 кнопок.Навроде меню мобильного.Какой дисплей выбрать для этого. [Ответ]
Butik 17:07 17.11.2010
За ссылку огромное спасибо!!!!!! Вроде и азбучные истины но часто попадаешь впросак- забываешь... то о том то об этом...)))

Теперь вот о доверии Протеусу и прочему всему подобному... Вот я выше писал о проблемке- два совершенно одинаковых фрагмента- но из разных компиляторов- и ведут себя по разному...Но... тот вариант из них что работает в протеусе- работает и в железе..
а тот что в протеусе не работает- в железе тоже мертвый...
Прошу извинения что повторюсь- но вот эти два кода- отредактированные и исправленные с учетом всех вышесказанных критических замечаний...

Код написанный и откомпилированный в CCS PICC - работает и в протеусе и в железе!!!

Код:
#include "C:\Microchip\_Project_\1c\main.h"

#use fast_io(A)

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   set_tris_A(0x28);

do{
if(input(PIN_A5)== 1) 
  {
 set_tris_A(0x28);
 output_bit(PIN_A1,1);
  }
if(input(PIN_A5)== 0) set_tris_A(0x2A);
}while(1);  
  
}
А вот код из MikroC - в протеусе не работает.. и в железе тоже...Мертво держит на выводе GPIO,1 нулевой уровень... и все..


Код:
unsigned short old_GPIO;

void init() {
  CMCON  = 0x07;
  TRISIO   = 0x28;
  OPTION_REG = 0b11000101;
  INTCON.GIE        = 0;
   }

void main() {
init() ;
   do {
   old_GPIO = GPIO;
   if(old_GPIO.F5 == 1) 
   {TRISIO =0x28;
   old_GPIO.F1 = 1;
    GPIO = old_GPIO;}
  if(old_GPIO.F5 == 0) TRISIO =0x2A;
    }  while(1);
}
У меня MikroC Pro 4,15 версия А ПРОТЕУС 7,5 SP3.... Может у меня что не так с компилятором ? MikroC в смысле???? Или глючный попался... Если так то плиз.. дайте ссылочку где качнуть рабочий...Кстати, какой из них лучше- про или обычный... и можно ли поставить сразу два

На всякий случай показываю схемку на которой в железе пробовал..
Изображения
Нажмите на изображение для увеличения
Название: Безымянный.JPG
Просмотров: 44
Размер:	11.9 Кб
ID:	1029249  
[Ответ]
Азат 08:25 18.11.2010
Поставить можно сразу два mikroC и mikroC pro.У меня стоит mikroC pro 3.8 и mikroC 8.2. [Ответ]
petrd 08:25 18.11.2010

Сообщение от Азат:
Да спасибо огромное пробывал по разному, с кнопками поиграл.)
1.Петр где можно нормальный русский ds скачать(или если не трудно вложите здесь).
2.Подскажите пожалуйста как реализовать bmp рисунок чтоб отобразился на дисплее.Т.е хочеться чтоб на экране было 4 рисунка подряд ввиде 4 кнопок.

1. Самый нормальный DS - от производителя и на английском, все остальное около и с ошибками, надо осваивать английский. Кое-что на русском здесь - http://www.microchip.ru/lit/?mid=1x0. Есть еще книги - В.А. Ульрих "Микроконтроллеры PIC16X7XX" (тот же даташит на семейство PIC16), Яценков "Микроконтроллеры Microchip с поддержкой USB"(тот же даташит на семейство PIC18).
2. О каком дисплее речь? [Ответ]
Страница 22 из 43
« Первая < 1216171819202122 23242526272832 > Последняя »
Вверх