Hallo Gemeinde,
ich versuche eigentlich etwas sehr einfaches (dachte ich zuerst).
Für einen Mischer brauche ich eine Oszillatorfrequenz von ca. 8,7 kHz, Rechteck genügt.
Ich dachte, ich nehme einen ATTiny85 (davon habe ich einige hier) und schreibe in kleines Programm das den Timer0 im CTC-Mode nutzt.
Hier mal der Code:
Alles anzeigen
Ich habe es nicht geschafft, Frequenzen über ca. 4,3 kHz zu erzeugen.
Nach einigen Versuchen ist mir aufgefallen, dass sich die Frequenz über den Wert Ocr0a im Bereich 119 bis 255 zwar ändern lässt, unter 119 ändert sich aber nichts mehr.
Hat jemand eine Idee, woran das liegt bzw. was ich sonst noch machen könnte?
ich versuche eigentlich etwas sehr einfaches (dachte ich zuerst).
Für einen Mischer brauche ich eine Oszillatorfrequenz von ca. 8,7 kHz, Rechteck genügt.
Ich dachte, ich nehme einen ATTiny85 (davon habe ich einige hier) und schreibe in kleines Programm das den Timer0 im CTC-Mode nutzt.
Hier mal der Code:
BASCOM-Quellcode: Rechteckgenerator
- ' Dieses Programm soll 8,7kHz am PortB.0 erzeugen.
- ' Timer0 im CTC-Mode
- $regfile = "ATTiny85.dat"
- $crystal = 1000000
- $hwstack = 32
- $swstack = 10
- $framesize = 10
- Config Portb.0 = Output 'Ausgang
- Config Timer0 = Timer , Prescale = 1 , Clear Timer = 1
- Ocr0a = 119 ' Frequenz wird hier eingestellt
- On OC0A ISR_Timer0_OC0A ' OC0A-Interrupt konfigurieren
- Enable OC0A ' OC0A-Interrupt zulassen
- Enable Interrupts
- Do
- nop
- Loop
- ' ISR-Routine
- ISR_Timer0_OC0A:
- Toggle Portb.0
- Return
Nach einigen Versuchen ist mir aufgefallen, dass sich die Frequenz über den Wert Ocr0a im Bereich 119 bis 255 zwar ändern lässt, unter 119 ändert sich aber nichts mehr.
Hat jemand eine Idee, woran das liegt bzw. was ich sonst noch machen könnte?