Обсуждаем контроллеры компании Atmel.
Ответить

Последовательное цикличное зажигание светодиодов

Сб мар 09, 2019 17:08:22

Как написать прогу в VMLAB последовательное цикличное зажигание светодиодов до номера нажатой клавиши микроконтроллере на Atmega8.Вот вроде начал а как закончить без понятия.Плиз очень нужна помощь :cry: :cry: :cry: :cry:
Код:
int main(void)
{
DDRB = 0x7F;
PORTB = 0x00;
DDRC=0x00;
DDRD=0xFF;
PORTC=0xFF;
 
while(1)
{
if(PINC&(1 << PC4))
{
PORTB |= (1 << PB6);
PORTD |= (1 << PD5);
PORTD |= (1 << PD7);
}
else
{
PORTB &= ~(1 << PB6);
PORTB |= (1 << PB6);
 
PORTD &= ~(1 << PD5);
PORTD |= (1 << PD5);
 
PORTD &= ~(1 << PD7);
PORTD |= (1 << PD7);
}
}
}

Re: Последовательное цикличное зажигание светодиодов

Сб мар 09, 2019 18:13:53

опишите всю последовательность действий (что должно произойти при отпускании кнопки?)

Re: Последовательное цикличное зажигание светодиодов

Сб мар 09, 2019 18:25:11

При нажатии кнопки заданные светодиоды должны переключаться в цикле и как только дойдет до кнопки 4 то должна остановиться программа.Но как сделать остановку я не знаю

Re: Последовательное цикличное зажигание светодиодов

Сб мар 09, 2019 22:02:01

Антон2342 писал(а):как сделать остановку я не знаю
while(1); остановит вашу программу наглухо.

Re: Последовательное цикличное зажигание светодиодов

Вс мар 10, 2019 08:49:34

Код:
do { } while ((PINC & (1<<PC4)) == 0); // ждать отжатия кнопки PC4
Ответить