-
-
Erfahrener Benutzer
Fleißiges Mitglied
Timer
Einen schönen guten Abend!
Kann mir mal bitttte jemand helfen wie man folgende Problem
realisiert. Ich habe das Board myavr mit einem ATMega8 (also nur einen 16-bit Timer und 2 8-bit Timer). Wenn ich nun z.B. alle 6 Sekunden in ein Unterprogramm und alle 30 Sekunden in ein anderes und wiederum alle 60 Sekunden in ein drittes verzweigen will , wie mache ich das am besten.
Eine RealTimeClock habe ich am Controller. Wäre sehr nett wenn mir jemand eine Beispielcode posten könnte.
Danke schonmal
Grüße
Martin
-
Erfahrener Benutzer
Roboter Genie
Martin,
ein Beispiel Programm kann ich dir nicht geben, aber zumindest das Prinzip erklären.
Du benutzt für das ganze nur einen Timer, und wenn du die Soft-Clock laufen hast, dann den Sectic Interrupt.
Dort zählst du die Sekunden und springst dann entweder nach der entsprechenden Anzahl, z.B. 30 in ein Unterprogramm oder du setzt nur eine Variable, z.B. 30sec_enable und fragst die in deiner Main-Loop ab. Kommt drauf an, was der Controller sonst noch zu tun hat.
Da die alle Vielfache von 6 sec. sind, würde ich sie etwas versetzt laufen lassen, damit die sich nicht ins Gehege kommen.
Gruß Rolf
-
Erfahrener Benutzer
Lebende Robotik Legende
Hallo martin66119!
Ich bin zwar PIC benutzer, aber vielleicht könnte ich Dir helfen. 
Ich würde ein Zähler bis 59 nehmen, der durch Timer interrupt jede Sekunde um 1 erhöht wird und durch das letzte Unterprogramm (nach 60s) gelöscht wird.
Nach jedem interrupt des Timers würde ich den Zählerstand prüfen und entsprechendes Unterprogramm aufrufen.
MfG
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen