Hallo Zusammen, ich versuche seit mehren Tagen einen Algorithmus zu finden mit dem ich folgendes Problem lösen kann. Ich verwende die RC5 Routine von Peter Dannegger um einen kleinen Motor und mehrere Digitalausgänge anzusteuern. Das setzen der entsprechenden Codes und Ausgänge funktioniert einwandfrei. Aber um den Motor ansteuern zu können, muss PORTB oder PORTC entsprechend der Drehrichtung mindestens 0.5sec gesetzt werden. Ich habe das ganze über ein Delay gelöst. Aber in dieser Zeit wird kein weiterer Code empfangen. D.h. kommt jetzt das gleiche Zeichen nochmal, werden die Ports erst zurückgesetzt und dann erneut gesetzt. Um das zu vermeiden, würde ich gerne anders vorgehen. Mein Grundgedanke wäre, ich setzt beim entsprechenden Code die dazugehörigen Ports und lösen einen Timer aus der 0.5sec läuft. Kommt der Code nochmal setzt ich den Timer zurück, kommt ein andere Code, setzt der Timer die Ports nach Ablauf der Zeit zurück und der Motor hält an. Kann mir jemand bei dieser Umsatzung helfen, irgendwie übersteigt das bei weitem meine mageren Kenntnisse zum ATMega8. Meine Fragen: 1. Wie starte ich einen Timer mit 0.5sec 2. Wie muss ich den Interupt für den Timer programmieren, sodaß er ausgelöst wird, wenn der Timer abgelaufen ist. Meine Entwicklungsumgebung SiSyAvr, ATMega8 und C Vielen Dank für jede Idee. Gruß Stefan
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.