mam następujący problem: mam napisaną funkcję w której zastosowana jest kilkukrotnie komenda _delay_ms, następnie w programie musiałem zastosować Timer0 w trybie przepełnienia który jest odpowiedzialny za wyświetlanie(7-seg led) i przyciski, po naciśnięciu przycisku wywoływana jest funkcja zawierająca _delay_ms, co sprawia żę wyświetlanie się rozjeżdża(tzn wyświetlacz jest odświeżany co zakończenie się funkcji, przez co wszystkie cyfry są wygaszone oprócz ostatniej która mruga), czy ma ktoś pomysł jak to rozwiązać??
uproszczony kod ilustrujący problem:
uproszczony kod ilustrujący problem:
void funkcja()
{
...
_delay_ms(500);
...
}
ISR(TIMER0_OVF_vect)
{
TCNT0=5;
nwsw++;
switch(nwsw)
{
...
}
if(bit_is_clear(przcisk))
{funkcja();}
}