а если вот так сделать, то когда нажимаешь мигает потом тока горит, и когда отпускаешь нормально гаснет. вот почему когда нажимаешь и держишь в начале мигает и потом только горит?
- Код: Выделить всё • Развернуть
while (1){
char asd;
while(UCSRA.7==1){
asd = UDR;
if(asd == 'w'){
PORTB.0 = 1;
PORTB.2 = 0;
PORTB.4 = 0;
PORTB.6 = 0;
delay_ms(100);
}
if(asd == 'a'){
PORTB.2 = 1;
PORTB.0 = 0;
PORTB.4 = 0;
PORTB.6 = 0;
delay_ms(100);
}
if(asd == 'd'){
PORTB.4 = 1;
PORTB.0 = 0;
PORTB.2 = 0;
PORTB.6 = 0;
delay_ms(100);
}
if(asd == 's'){
PORTB.6 = 1;
PORTB.0 = 0;
PORTB.2 = 0;
PORTB.4 = 0;
delay_ms(100);
}
}
asd = 'q';
if(asd == 'q'){
PORTB.6 = 0;
PORTB.0 = 0;
PORTB.2 = 0;
PORTB.4 = 0;
}
}
вроде должен так работать, ну как я понимаю, когда нажимаю "w","a","s","d" заходит while(UCSRA.7==1) а когда не нажимаю, выходит из этого цикла, правильно? если я отпускаю то должны все светодиоды не гореть, то есть программа не заходит в while(UCSRA.7==1) то есть asd = 'q' и все светодиоды гаснут...я правильно понимаю?