Začatky programovaní v jazyce C - ovládání LED tlačítkem

Zdravím řeším jednen problem při programovaní pic 16f84A v jazyku C.

Při stisku tlačítka (RA2) se postupne po vteřině rozsvěcují LED RB0 - RB4…Tohle mi funguje. A ja bych chtě,l abych pri pruběhu zozsvěcovaní mohl použít tlačitko (RA3) jako reset a vratit RB0 - RB4 do “0”

void main() {
TRISA=0xff;
PORTA=0;
TRISB=0x00;
PORTB=0;

if(PORTA.B2==1) //je-li na vstupu RA2 1 spustí se LED
{
PORTB=0b00000000;
DELAY_MS(1000);
PORTB=0b00000001;
DELAY_MS(1000);
PORTB=0b00000011;
DELAY_MS(1000);
PORTB=0b00000111;
DELAY_MS(1000);
PORTB=0b00001111;
DELAY_MS(1000);
PORTB=0b00011111;
DELAY_MS(1000);

}

}

:arrow_right: administrator: přejmenováno z "Začatky programovaní v jazyce C"

Jde o to, že jakmile skočíš do smyčky provedou se všechny instrukce. Musel bys přidat mezi jednotlivé rozsvěcování další podmínku if a vynulovat PORTB a vyskočit ze smyčky. Určitě to jde udělat elegantněji, ale todle mě napadlo jako první.

Pokud si nechceš komplikovat život přerušením, udělej to jako stavovej automat. Napovím - switch() , case , případně if () {}