Всем привет , подскажите как лучше организовать условие ? К микроконтроллеру подключен 8ми сегментные индикатор и две кнопки. по нажатию на кнопку "+" цифра на индикаторе меняется с 0 на 1 , при повторном нажатии с 1 на 2 в общем инкримент , при нажатиии на кнопку "-" дикримент (уменьшает на 1)
код: #include <mega8.h> #include <delay.h>
unsigned char i; flash unsigned char led[11]={ 0b10111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111, 0b00111111};
void main(void)
{ i=0; PORTB.0=1; PORTB.1=1; DDRB.0=0; DDRB.1=0; PORTD=0b11111111; DDRD=0b11111111;
start: PORTD=led[i]; while (1) { delay_ms(100);
if (PINB.0==0) {i++; goto start;} // "+" if (PINB.1==0) {i--; goto start;} // "-" }; }
в моем случае все доходит до первого оператора if и возвращается к метки "start:" как сделать так чтоб была реакция на кнопки?
|