Witam , walczę ostatnio z pewnym kodem .
Teoretycznie wszystko powinno działać i w sumie działa ale rezultat jest inny od zakładanego.
Procek to Atmega8 taktowany z wewnętrznego oscylatora ustawionego na 8MHz.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ponieważ częstotliwość to 8MHz a preskaler ustawiony jest na 8 i OCR1A na 1, wiec procedura przerwania powinna być wywoływana
co 1us i po 4 us zmienna licznik powinna wynosić ok 4.
Tymczasem wyświetlana jest wartość 7 ?
Gdy zmieniam czas oczekiwania np na 2us to wynik = 5.
Wydaje mi się że wszystko robię dobrze , aż taki wpływ ma to że procek jest taktowany wewnętrznym oscylatorem a nie kwarcem ?