Wpis z mikrobloga

Mircy elektronicy działacie może na xmega? Na atmega32 mam kod, nie swój, miernika częstotliwości (zlicza chyba do 100Mhz, ale nie mam pewności sprawdziłem tylko przez pwm do 10Mhz). O ile orientuję się na oko jak działa, o tyle nie wiem jak działa timer zliczający impulsy. I nie wiem jak przełożyć owe ustawienia timerów na xmega. Nie rozumiem w ogóle rejestrów i przerwań w timerach xmega. Kombinowałem coś z ustawieniami i nawet pokazywało jakieś randomowe wartości w zakresie do 200.
Pomożecie?
Tu cały kod:

Dim Frequency As Long
Const Licznik = 46004 'odlicza 250ms, czyli wynik odswieza 4/s na zegarze 20Mhz
'60654

Config Timer1 = Timer , Prescale = 1024
On Timer1 Czas
Enable Timer1

Config Timer0 = Counter , Edge = Falling 'wejscie na sygnał
On Timer0 Zlicz
Enable Timer0

Enable Interrupts

Counter1 = Licznik

Do
Loop

Czas: 'przerwanie od licznika impulsów
Stop Timer0
Stop Timer1

Frequency = Frequency * 256
Frequency = Frequency + Counter0
'Frequency = Frequency * 4 'bo oswieżamy wynik 4x sekunde

Gosub Wyswietlwynik

Frequency = 0
Counter0 = 0
Counter1 = Licznik
Start Timer0
Start Timer1
Return

Zlicz:
Incr Frequency
Return

Wyswietl
wynik:
Tmp = Str(frequency)
Tmp = Tmp + " Hz"
Lcdgoxy 1 , 3
Lcdstr Tmp , 1 , 0
return

#elektronika #avr #xmega

Mircy teraz wychodzę będę za 20 minut.
  • 1
@Fox_Murder: czy atmega czy xmega znaczenia nie ma. Poszukaj w necie tutoriala o timerach w atmedze. Przeczytaj uważnie, a potem zapoznaj się z dokumentacją która jest Twoim przyjacielem i świetnie opisuje wszystko w tych prockach. I zmień język na C.