Witam mam pytanie odnośnie wykorzystania Timera1 do sprzętowego generowania sygnału prostokątnego na atmega8L.
Tak programuję uC:
Do pinu nr 15 (OC1A) podłączony jest rezystor 100k.
Zgodnie z tym co wyczytałem na forum i helpie bascoma, uC powinien wygenerować sygnał o częstotliwości 0,5Hz (8000000/256=x, compare1a/x=1/2f). Gdy zmierzyłem napięcie na rezystorze, okazało się, że f=0,0625Hz bo napięcie na rezystorze pokazuje się na 8s, potem bez napięcia 8s, jest...
Próbowałem różnych wartości Prescale i Compare1a ale za każdym razem to co generował uC nie pokrywało się z obliczeniami.
Nie wiem czy problem leży po stronie programu, obliczeń, czy może ułomności miernika? Dostęp do oscyloskopu będę miał może pod koniec tygodnia, a chciałbym wcześniej rozwiązać ten problem, dlatego proszę o pomoc,
pozdrawiam,
Czarek
Tak programuję uC:
$regfile = "m8def.dat"
$crystal = 8000000
Config Pinb.1 = Output
Config Timer1 = Timer , Prescale = 256 , Compare A = Toggle , Clear Timer = 1
Compare1a = 31250
Start Timer1
Do
Loop
End
Do pinu nr 15 (OC1A) podłączony jest rezystor 100k.
Zgodnie z tym co wyczytałem na forum i helpie bascoma, uC powinien wygenerować sygnał o częstotliwości 0,5Hz (8000000/256=x, compare1a/x=1/2f). Gdy zmierzyłem napięcie na rezystorze, okazało się, że f=0,0625Hz bo napięcie na rezystorze pokazuje się na 8s, potem bez napięcia 8s, jest...
Próbowałem różnych wartości Prescale i Compare1a ale za każdym razem to co generował uC nie pokrywało się z obliczeniami.
Nie wiem czy problem leży po stronie programu, obliczeń, czy może ułomności miernika? Dostęp do oscyloskopu będę miał może pod koniec tygodnia, a chciałbym wcześniej rozwiązać ten problem, dlatego proszę o pomoc,
pozdrawiam,
Czarek