Hi!
Du könntest dafür z.B. den Timer1 im CTC-Modus benutzen.
Der Timer1 zählt nun bis zum Wert 1234 und Toggelt dann den Pin "OC1A" (beim Mega8 Portb.1).Code:$regfile = "m8def.dat" Config Portb.1 = Output Config Timer1 = Counter , Edge = Falling , Compare A = Toggle , Clear Timer = 1 , Prescale = 1 Compare1a = 1234 Do Loop
Es gilt die Formel: Freq. Pin = Freq. CPU / (2 * Prescaler * (1+Compare1a))
Oder umgestellt nach Compare1a: Compare1a = Freq. CPU / (2 * Prescaler * Freq. Pin)) - 1
Für 140kHz brauchst du also den Wert 27, für 90kHz den Wert 43 bei Prescaler = 1 und 8MHz CPU-Clock.
Die gleiche Geschichte kannst du auch mit Timer2 machen, falls du Timer1 noch für was anderes brauchst.
MfG
Basti






Zitieren
Lesezeichen