Zdravím, chtěl bych se zeptat těch znalejších kde dělám chybu. Mám hotový program, ale z nějakého důvodu mi po poslední úpravě přestal chodit jak bych chtěl.
Část programu vypadá takto:
ISR(TIMER1_COMPA_vect)
{
if ((PIND & (1 << PD0)) == 0 )
{
i++;
if (i>1000)
{
i=0;
stav++;
}
}
clock_millisecond++;
if(clock_millisecond==1000)
{
clock_millisecond=0;
//decrement runtime values
if(clock_second>0) {
clock_second--;
} else {
if (clock_minute>0)
{
clock_minute--;
clock_second=59;
} else {
action();
}
}
}
}
Zadám hodnotu clock_min a spustím přerušení. Po uběhnutí času by měl skočit na funkci action(), ale neděje se tak. Ihned načte hodnotu 100min a znovu oděčítá.
Asi jsem se někde upsal nebo udělal něco špatně. Celý program případně pošlu. Nechce se mi sem vkládat, už je poměrně rozsáhlý.