Я только начал учить программирование , написал небольшой код для схемы
код компилируется и работает ,но вот есть такой баг . Если нажать 2 кнопки, то как надо побегут 2 светодиода . Но если потом пустить обе и нажать первую , снова бегут 2 светодиода . Как это решить? Готовый код не прошу, прошу направить куда копать .Понимаю что по логике должна быть какае-то очистка или сброс на начало .
//atmega8
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
void preset(){
DDRB = 0xFF;
PORTB = 0x00;
DDRC = 0x00;
PORTC = 0xFF;
}
int main(void)
{
preset();
while(1)
{
if(PINC&(1<<(PC1&PC0)))
{
for (int i=0;i<=7;i++)
{
PORTB = (1<<i) | (2<<i);
_delay_ms(300);
}
}
else
{
if(PINC&(1<<PC0))
{
for (int i=0;i<=7;i++)
{
PORTB = (1<<i);
_delay_ms(150);
}
}
else
{
if(PINC&(1<<PC1))
{
for (int i=7;i>=0;i--)
{
PORTB = (1<<i);
_delay_ms(150);
}
}
else
PORTB = 0x00;
}
}
}
}