Hallo, ich habe einen Reseteingang. Wenn ich diesen Betätige soll eine Reihenfolge von Ausgängen im 1 Sekundentakt angesteuert werden. Welche Lösungen schlagt ihr vor? 1. Sehr primitiv mittels delay die gewünschten Ports freischalten? 2. Mittels Timer die Werte aufrufen? 3. eine andere schöne Lösung. Die Reihenfolge der Ausgangsport ist immer gleich.
Hallo Sebi, falls der Prozessor keine anderen Aufgaben hat, reicht wohl eine Lösung mit Delay. Dann müsste man - das Delay als Subroutine anlegen 1. Die Ports initialisieren 2. In einer Endlosschleife -ersten Ausgang setzen -Delay aurufen -ersten Ausgang zurücksetzen -zweiten Ausgang setzen - Delay aufrufen ... - letzen Ausgang setzen - Delay aufrufen - letzten Ausgang zurücksetzen 3. zum Anfang der Schleife springen. Eleganter ist eine Lösung mit Timer und Interrupt. Dazu einen Timer laden (wenn es Taktfrequenz und Vorteiler zulassen mit einem Wert für eine Sekunde. (t=Taktperiode Timereingang Vorteiler Ladewert) Bei jedem Interrupt den Nächsten Ausgang ansteuern und den Timer nachladen. Hat der Timer eine kürzere max.Periode,(z.B 0,2sec) einfach im Interrupt eine Variable hochzählen, Im Hauptprogramm den nächsten Ausgang ansteuern, wenn diese Variable einen bestimmten Wert erreicht(z.B.5)hat und diese Variable löschen. Gruss Digger
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.