{
LCD_clear();
LCD_putstr_P(PSTR("TTTTTT1"));
LCD_xy(3,1);
LCD_putstr_P(PSTR("1"));
}
void menu2(void)
{
LCD_clear();
LCD_putstr_P(PSTR("TTTTTT2"));
LCD_xy(1,1);
LCD_putstr_P(PSTR("2"));
}
int main(void)
{
int i=0;
int podmenu=0;
LCD_init();
DDRA = 0x00;
PORTA = 0x03;
LCD_xy(0,0);
LCD_putstr_P(PSTR("HELLO"));
LCD_xy(0,1);
LCD_putstr_P(PSTR("............."));
delayms(3000);
LCD_clear();
LCD_xy(4,0);
LCD_putstr_P(PSTR("<<MENU>>"));
while(1)
{
if((PINA & 0x01))
{
i++;
/* opóżnienie aż drgania na stykach ustaną */
delayms(80);
while((PINA & 0x01)) {}
delayms(80);
/* oczekiwanie na zwolnienie przycisku */
}
if((PINA & 0x02))
{
podmenu++;
/* opóżnienie aż drgania na stykach ustaną */
delayms(80);
while((PINA & 0x01)) {}
delayms(80);
/* oczekiwanie na zwolnienie przycisku */
}
switch(i)
{
case 1:
{
LCD_clear();
LCD_xy(4,0);
LCD_putint(podmenu,10);
break;
}
case 2: menu2(); break;
default :
{LCD_clear(); LCD_xy(4,0); LCD_putstr_P(PSTR("<<MENU>>")); i=0;}
}
}
}
Ehh do tej pory programowałem w Bascomie no i przyszedl czas na C i zaczyna się rozpacz, posiadam zestaw uruchomieniowy AND-techa EVB 4.3 v2 podlaczam pod PORTA dwa przyciski i gdy usunę jeden if dla pierwszego przycisku dziala wszystko ok ale gdy podlacze drugi i dodam if, zaczynaja sie dziwne rzeczy