J
Jürgen Schulz
Guest
Hallo Ihr,
Habe Probleme mit dem AT90S2313. Bei einer Quarzfrequenz von 7372800, möchte ich
eine Frequenz von 40 kHz an Portd.4 zur Verfügung stellen. Dazu bräuchte ich bei
Prescale von 1, ein Reload von 92. Aber erst ab Reload 150 erhalte ich eine
Frequenz von ca.25kHz am Ausgang. Sobald ich den Wert verkleinere, passiert nix
mehr am Ausgang. Was mache ich falsch, hat jemand ein Tipp?
Mit besten Dank Jürgen
Hier mal der Code (Bascom)
------------------------
Dim X As Byte
Config Portd = Output
Const Reload = 150
Config Timer1 = Timer , Prescale = 1
Ocr1ah = High(reload)
Ocr1al = Low(reload)
Tccr1a = 0
Set Tccr1b.3
On Compare1a Timer1_isr
Enable Compare1a
Enable Interrupts
Do
If X = 1 Then Set Portd.4
If X = 2 Then
Reset Portd.4
X = 0
End If
Loop
End
Timer1_isr:
X = X + 1
Return
Habe Probleme mit dem AT90S2313. Bei einer Quarzfrequenz von 7372800, möchte ich
eine Frequenz von 40 kHz an Portd.4 zur Verfügung stellen. Dazu bräuchte ich bei
Prescale von 1, ein Reload von 92. Aber erst ab Reload 150 erhalte ich eine
Frequenz von ca.25kHz am Ausgang. Sobald ich den Wert verkleinere, passiert nix
mehr am Ausgang. Was mache ich falsch, hat jemand ein Tipp?
Mit besten Dank Jürgen
Hier mal der Code (Bascom)
------------------------
Dim X As Byte
Config Portd = Output
Const Reload = 150
Config Timer1 = Timer , Prescale = 1
Ocr1ah = High(reload)
Ocr1al = Low(reload)
Tccr1a = 0
Set Tccr1b.3
On Compare1a Timer1_isr
Enable Compare1a
Enable Interrupts
Do
If X = 1 Then Set Portd.4
If X = 2 Then
Reset Portd.4
X = 0
End If
Loop
End
Timer1_isr:
X = X + 1
Return