Witam,
Będę naprawdę bardzo wdzięczny za pomoc...
Moja ATmega168 pracuje z dokładnie 8 razy mniejszą częstotliwością, niż powinna.
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 ?
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++
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 ?