Всем привет , подскажите как лучше организовать условие ?
К микроконтроллеру подключен 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:"
как сделать так чтоб была реакция на кнопки?
mega+8сегментный индикатор+две кнопки
- Reloader
- Мучитель микросхем
- Сообщения: 451
- Зарегистрирован: Сб фев 26, 2011 14:38:42
- Откуда: Новочеркасск
Re: mega+8сегментный индикатор+две кнопки
Самый простой вариант :
Код: Выделить всё
while (1)
{
delay_ms(100);
if (PINB.0==0) {
i++;
PORTD=led[i];
delay_ms(100);
} // "+"
if (PINB.1==0) {i--;
PORTD=led[i];
delay_ms(100);
} // "-"
};
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
Мой Youtube канал
Re: mega+8сегментный индикатор+две кнопки
это практически тоже самое, правда "красивее и правильнее", чем у ТС 
если у ТС срабатывает первый if, то нажата кнопка "+" и, следовательно, значение должно увеличиваться (правда, после выхода за пределы массива на индикаторе будет мусор)
если у ТС срабатывает первый if, то нажата кнопка "+" и, следовательно, значение должно увеличиваться (правда, после выхода за пределы массива на индикаторе будет мусор)
- Reloader
- Мучитель микросхем
- Сообщения: 451
- Зарегистрирован: Сб фев 26, 2011 14:38:42
- Откуда: Новочеркасск
Re: mega+8сегментный индикатор+две кнопки
Естественно будет мусор 
Я же не говорил, что это полностью готовая программа. Это всего-лишь поправленная простейшая обработка кнопок.
Я же не говорил, что это полностью готовая программа. Это всего-лишь поправленная простейшая обработка кнопок.
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
Мой Youtube канал