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

ATmega168 - Prędkość taktowania 8 razy mniejsza niż oczekiwana

Kyroaku 19 Sie 2015 21:51 567 3
REKLAMA
  • #1 14933462
    Kyroaku
    Poziom 8  
    Witam,
    Będę naprawdę bardzo wdzięczny za pomoc...

    Moja ATmega168 pracuje z dokładnie 8 razy mniejszą częstotliwością, niż powinna.

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


    fuse bity ustawiam na:
    low: 0x62
    high: 0xDF
    Według fuse calculatorów, są to wartości domyślne i oznaczają 8MHz na wewnętrznym oscylatorze.

    Skoro tak, uC powinien wytwarzać PWM o częstotliwości:
    8 000 000 / 64(preskaler) / 31250(ICR1) = 4Hz

    Tak się jednak nie dzieje. PWM generuje impuls dokładnie co 2 sekundy (0,5Hz), więc wychodzi na to, że uC pracuje z częstotliwością 1MHz.

    Próbowałem także kombinować z fusebitami.
    Po ustawieniu na zewnętrzny kwarc 8MH (low: 0x7D, high: 0xDF), jest dokładnie tak samo.

    Po ustawieniu na zewnętrzny kwarc 12MH (low: 0x7F, high: 0xDF), częstotliwość wzrasta o połowę (12 / 8 = 1,5).

    Ma ktoś pomysł, dlaczego tak się dzieje ?
  • REKLAMA
  • Pomocny post
    #2 14933491
    zumek
    Poziom 39  
    Kyroaku napisał:


    fuse bity ustawiam na:
    low: 0x62
    high: 0xDF

    To ustaw low: 0xE2 i po krzyku :D
  • REKLAMA
  • Pomocny post
    #3 14933501
    szczywronek
    Poziom 28  
    Kyroaku napisał:
    Według fuse calculatorów, są to wartości domyślne i oznaczają 8MHz na wewnętrznym oscylatorze.
    Według datasheeta oznaczają też włączenie preskalera, dzielącego sygnał zegarowy /8 ;)
  • #4 14933581
    Kyroaku
    Poziom 8  
    *@&#^!%$(@($*%

    Bez komentarza.
    Dzięki.
REKLAMA