Hallo! Ich bin gerade dabei mit dem AT90S8535 Timer1 100ms zu erzeugen. Da ich noch nicht so viel mit Timern gearbeitet habe, fällt mir es schwer 100ms zu erzeugen. Weiss jemand was ich da falsch gemacht habe?
das Programm hat damit nichts zu tun. Du musst den Timer so einstellen, dass er alle 100ms einen Interrupt auslöst. Entscheidende Faktoren dafür: -Taktfrequenz -Vorteiler -Reload-Wert Es gibt 2 grundsätzliche Möglichkeiten beim Timerinterrupt: -den OV-Int benutzen, dann musst du in der ISR den Counter mit dem passenden Wert laden (der Counter steht auf 0, du lädst einen Wert >0, d.h. du kannst bestimmen, wie lange es bis zum nächsten Int dauert) -den OCR-Int in Verbindung mit der CTC-Funktion Du schreibst den gewünschten Wert einmal ins OCR-Register, erreicht der Zähler diesen Stand, wird der OCR-Int ausgelöst (da kannst du dann deine Uhr programmieren), gleichzeitig wird automatisch der Counter auf 0 gesetzt. Ich bevorzuge die 2.Variante. Und ein Beispiel: Quarz 4 MHz = 0,25µs, Vorteiler 8 -> Timertakt=500kHz=2µs. 100ms/2µs=50.000. Also entweder OCR mit 50.000 laden und den OCR-Int verwenden oder den Zähler bei jedem OV mit 65536-50000 laden und den OV auswerten.
Also bitte, wo sind wir denn? Hör mal Johny, hock dich mal auf deinen Hintern, schnapp dir einpaar Bücher, mach deine Äuglein auf und fang an zu lesen (Denken dabei nicht vergessen). Sch****, es geht doch schließlich ums Verstehen und Lernen, und du willst es einfach von irgendjemandem plagiieren. Du willst es doch mal versehen, oder? Also ohne Fleiß, kein Preis.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.