Набрал схему на основе AVR AT90S8535 подключил все на свете, включая ЖК, клавиатуру 3х4, движок, диодики... пришел покупать - нет.
Купил ATmega8535. Вставил прогу - клавиатура не работает. Собрал программу с нуля! Используя CVavr (code vision) и Proteus 7.5 sp3 prof...
Клавиатура по прежнему лагает.
Симптом: на первое нажатие не реагирует (прога должна сразу ввыводить на ЖК любой набранный символ) и при этом запоминает столбец клавиатуры (непонятно как), далее со второго нажатия клавиши Этого столбца работают справно, а если нажать с другого столбца - символы не распознает, а выдает только # или 0, причем без какой либо логики (видимой).
Бросал прерывание на INT0 и INT1... не помогает.
Игрался с задержками, не помогает.
Уже собрал голую схему с ЖК, МК и клавой - все-равно не фурыкает, а на AT90S8535 - замечательно...
![Вопрос](images/smilies/icon_question.gif)
?
Помогите пожалуйста
Код подпрограммы обоаботки прерывания по клаве:
char key;
#define keypad(pin,port) \
port.1=1; \
delay_ms(100); \
if (pin.5==1) key='1'; \
if (pin.6==1) key='2'; \
if (pin.7==1) key='3'; \
port.1=0; \
port.2=1; \
delay_ms(100); \
if (pin.5==1) key='4'; \
if (pin.6==1) key='5'; \
if (pin.7==1) key='6'; \
port.2=0; \
port.3=1; \
delay_ms(100); \
if (pin.5==1) key='7'; \
if (pin.6==1) key='8'; \
if (pin.7==1) key='9'; \
port.3=0; \
port.4=1; \
delay_ms(100); \
if (pin.5==1) key='*'; \
if (pin.6==1) key='0'; \
if (pin.7==1) key='#'; \
port.4=0; \