Zaloguj się, aby zobaczyć kod
Zmienna ' i ' mówi który wyświetlacz ma zostać teraz włączony.
gdy i = 1 to "włączony" ma zastać wyświetlacz nr 1 czyli na port B ma trafić zawartość zmiennej W1 i następnie do zmiennej ' i ' zostaje wpisana wartość 0 aby po kolejnym przepełnieniu timera włączony został wyświetlacz 2
i analogicznie
gdy i = 0 to "włączony" ma zostać wyświetlacz nr 2 czyli na port B ma trafić zawartość zmiennej W2 i następnie do zmiennej ' i ' zostaje wpisana wartość 1 aby po kolejnym przepełnieniu timera włączony został wyświetlacz 1
Trochę to nie 'po polsku' ale cóż, nieraz tak bywa
'Po polsku' powinno być tak:
Zaloguj się, aby zobaczyć kod
Dodano po 1 [minuty]: Cytat: Cytat:
Gdzie timer realizuje zliczanie ?
Timer zlicza automatycznie zwiększając wartość rejestru TCCR0.
W tym przypadku TCCR0 jest zwiększany od zera do 255. Gdy nastąpi przepełnienie czyli przejście z 255 na 0 następuje wywołanie procedury przerwania.
Cytat:
Widać też lekkie miganie wyświetlaczy...
Najwyraźniej częstotliwość 'przełączania' poszczególnych wyświetlaczy jest za mała. Należy ją zwiększyć czyli skrócić czas przepełnienia się Timer.
Robi się to wpisując do TCCR0 wartość początkową od której ma liczyć.
Czyli na początku procedury przerwania należy wstawić np:
TCCR0 = 100;
Tu zrobiłem mały błąd.
Oczywiście zamiast rejestru
TCCR0 powinien być rejestr
TCNT0.
Sorki za wprowadzenie w błąd.
Dodano po 8 [minuty]: Cytat: Dlaczego mam zdefiniowany F_CPU na 16Mhz, w funkcji _delay_ms wpisuję 1000ms a opóźnienie wygląda jak ... 200ms ? 250, nie wiem. Powinno czekać 1s a czeka nawet nie ćwierć sekundy. O co tu chodzi ? żeby uzyskać 1s w delayu muszę wpisać jako argument 100000. Da się zrobić w ogóle ten program inaczej niż Twoim sposobem (zapisem) ?
Masz coś namieszane z tym oscylatorem.
Napisz jak masz ustawione fusy bits.
Wtedy będziemy wszystko wiedzieć.
Cytat: Chciałbym napisać go sam i sam dojść do wszystkiego ale widzę że jest to niemożliwe. Twój program nic mi nie pomaga, bo i tak nie rozumiem w nim praktycznie niczego prócz ustawień timera
Mogę poradzić Ci, żebyś kupił sobie jakąś książkę np książka użytkownika tmf. Ostatnio głośno o niej na forum.
A jeżeli masz jakieś dodatkowe pytania to żeby nie zaśmiecać forum możemy kontaktować się przez gg.