PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NE555 im Mega8 per Software?



Alex20q90
24.01.2008, 16:17
Hi,

ich möchte meinen ATmega8 (mit 8MHz-Quarz) an einem Ausgang als NE555 nutzen. Dabei sollte der Ausgang zw 90 und 140kHz machen.

Grund ist das ich gerne mal einen PL-Modem aufbauen möchte und den NE555 dafür in den M8 haben möchte.

Momentan sind noch alle Pins frei (ausser Vcc, Gnd, XTal1/2 und Reset)

Gibt es einen Quellcode als Beispiel?

Grüße
Alex

BASTIUniversal
24.01.2008, 18:28
Hi!
Du könntest dafür z.B. den Timer1 im CTC-Modus benutzen.

$regfile = "m8def.dat"

Config Portb.1 = Output

Config Timer1 = Counter , Edge = Falling , Compare A = Toggle , Clear Timer = 1 , Prescale = 1
Compare1a = 1234

Do
Loop

Der Timer1 zählt nun bis zum Wert 1234 und Toggelt dann den Pin "OC1A" (beim Mega8 Portb.1).
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

Alex20q90
24.01.2008, 19:16
Hi,

danke ich werds gleich mal versuchen!

EDIT: Perfekt! Danke Dir!