Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega8 - Niewłaściwa częstotliwość timera2

Legier 22 Sie 2013 20:37 834 3
  • #1 22 Sie 2013 20:37
    Legier
    Poziom 11  

    Witam.
    Postanowiłem sobie napisać na Atmegę8 sterownik do silnika BLDC wymontowanego z napędu CD. Częstotliwość obrotów jest regulowana enkoderem. Problem tkwi w tym że częstotliwość na wyjściach nie zgadza się z tą, którą obliczam. Żeby to sprawdzić do portu C podpiąłem diody zamiast silnika i widzę jak szybko migają. Poniżej wklejam kod. Mam ustawiony wewnętrzny oscylator na 8MHz i ustawione przerwanie od porównania (porównuję do 1) i wg tego przerwanie powinno być wywoływane co 1/8 000 000 sekundy. W kodzie mam ustawioną wartość freq na 6001 za pomocą której przełączam fazę silnika (zmieniam świecące się diody) z czego wynika że pojedyncza dioda powinna migać z częstotliwością = 8 * 10^6 / (6001 * 3) = 444Hz a na moje oko to miga z 10Hz.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 3
  • #2 22 Sie 2013 20:47
    BlueDraco
    Specjalista - Mikrokontrolery

    Czyli oczekujesz, że Twój procesor, który wykonuje ok. 8 mln instrukcji na sekundę i któremu sprzętowa obsługa przerwania (bez instrukcji tworzących procedurę obsługi) zajmuje tyle, co wykonanie kilkunastu instrukcji, ma obsłużyć 4 mln przerwań na sekundę? No, to się nie musi udać...

    0
  • #3 22 Sie 2013 20:53
    Legier
    Poziom 11  

    To w takim razie jakie powinienem wziąć poprawki do obliczeń, aby z dość dużym przybliżeniem obliczyć wyjściową częstotliwość?
    I jeszcze jedno pytanie - czy w momencie wykonywania przerwania timer dalej zlicza, czy czeka na zakończenie wykonywania przerwania?

    0
  • #4 22 Sie 2013 21:08
    BlueDraco
    Specjalista - Mikrokontrolery

    W zależności od tego, jak to oprogramujesz, możesz przyjąć, że max. częstotliwość przerwań moe być w okolicach od kilku do 40 kHz. O tym, jak działa timer, przeczytasz wszystko w doc2486.pdf.

    0