logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega32][C] _delay_ms - dlaczego nie działa

Joahim_Skywalker 28 Gru 2009 22:28 1715 3
  • #1 7450058
    Joahim_Skywalker
    Poziom 12  
    Witam.

    Moje pytanie sprowadza się do poniższego problemu.

    W przerwaniu od t0 chcę za pomocą pętli obsłużyć takie coś:

    unsigned char opoznienie;
    if bit_is_clear(PIND,PD4)
    {
    int x;

    opoznienie=2000
    for (x=0;x<opoznienie;x++)
    {
    _delay_ms(1)
    }

    }


    Jeśli mam wpisane opoznienie przed petla "for" wówczas wartość "2000" jest ignorowana i dioda led zapala się natychmiastowo, natomiast jeśli w "for" wstawię na sztywno "2000" wówczas dioda zapala się z wymaganym opóźnieniem. W rzeczywistości opóźnienie będzie regulowane od 0-19[ms], ale wstawiam 2000 gdyż chcę sprawdzić w ten sposób działanie programu.

    Proszę o pomoc.
  • #4 7450234
    Joahim_Skywalker
    Poziom 12  
    Dziękuję.
    unsigned char: 0..255
    Wszystko jasne.
REKLAMA