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

ATmega328 - Zaledwie 10kHz Fpwm dla kwarca 20MHz- co jest nie tak?

lukaszSZ999 14 Mar 2015 17:14 885 4
REKLAMA
  • #1 14529067
    lukaszSZ999
    Poziom 11  
    Witam

    Bawię się obsługą sprzętowego PWM. Skonfigurowałem trzy timery w tryb Fast PWM. Do uC podpiąłem kwarc 20MHz i ustawiłem fusebity. Wpisałem w OCR1A wartość 128 i podłączyłem oscyloskop.
    Okazuje się że okres wynosi zaledwie 0.1 ms to 10kHz, mimo tego że preskaler ustawiłem na 1... coś mi tu nie pasuje bo zgodnie ze wzorem:

    Fpwm = Fcpu/1/255 powinienem dostać prawie 78kHz a tak się nie dzieje.

    Coś jeszcze przykuło moją uwagę
    Po wpisaniu wiersza "_delay_ms(1000)" na początku programu przed inicjalizacją czekam ok 7 sekund od włączenia atmegi do pojawienia się przebiegu na oscyloskopie... Gdy zdefiniuje F_CPU jako 1000000 (1Mhz) wtedy delay trwa ok 1s.


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Programuje w AVR Studio 6.2. Fusebity ustawiam w BASCOMie. W czym może być problem? Czyżby jednak nie pracował z zewnętrznym kwarcem? To nie możliwe bo po zmianie 20Mhz na 16Mhz zauważyłem wydłużenie okresu.
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #3 14529163
    kuuczoo
    Poziom 26  
    Sprawdź bit CKDIV8 w fusebitach.
  • REKLAMA
  • #4 14529211
    lukaszSZ999
    Poziom 11  
    Jest tak jak teraz:
    ATmega328 - Zaledwie 10kHz Fpwm dla kwarca 20MHz- co jest nie tak?

    Dodano po 5 [minuty]:

    Dziękuję Wam. Ustawiłem CKDIV8 na 1 i wszystko gra :) Temat do zamknięcia
REKLAMA