jcrypter
19.08.2010, 08:44
...e gedrückt
Guten Morgen liebes Forum,
ich habe es gestern geschafft eine Verbindung zwischen meinem PC und dem Mega32 über RS232 herzustellen.
Jubel! ;)
Jetzt stellt sich für mich die Frage wie sich etwas realisieren ließe, dass einer Fernsteuerung gleich kommt.
Dass heißt, so lange ich eine Taste drücke wird eine Aktion ausgeführt.
Bzw. so lange ein bestimmtes Zeichen immer und immer wieder an den µC gesendet wird, wird irgendeine Aktion ausgeführt, meinetwegen eine LED leuchtet.
Was für Möglichkeiten gibt es da?
Was mir als erstes einfallen würde, wäre die empfangenen Daten in einem Interrupt aufzufangen und dabei abzugleichen, ob das empfangene Zeichen mit einem bestimmten Steuerzeichen übereinstimmt und dann eine Aktion auszuführen. Das hätte allerdings den Nachteil, dass ich auch wenn keine Aktion ausgeführt werden soll zumindest ein "Stop" schicken muss, da sonst die Aktion die begonnen wurde bis in alle Ewigkeit weiterläuft, da die Interruptroutine ja nicht nochmal aufgerufen würde um zu merken, dass nichts mehr kommt.
Während ich das schreibe habe ich noch eine Idee.
Man drückt am PC (in dem dafür vorgesehenen Programm, dass noch zu schreiben wäre) eine Taste(z.B. Pfeil hoch) und hält sie gedrückt. Das Programm schickt über die serielle Schnittstelle einmal ein Zeichen (z.B. eine 1 ), sozusagen als OnKeyPress-Methode.
Der µC empfängt das Zeichen sammelt es in der Interrupt-Routine auf, analysiert, empfangenes Zeichen = 1 und setzt irgendeinen Port auf 1.
Solange also nichts weiter vom PC kommen würde bleibt der Port auf 1.
Jetzt lässt der Benutzer am PC die Taste los, die OnKeyUp-Methode schickt ein weiteres Zeichen (z.B. 4).
Der µC empfängt das Zeichen und weiß, dass die vorherige Aktion beendet ist, Port auf 0.
Klingt jetzt erstmal gar nicht schlecht, finde ich ;)
Was sagt ihr dazu?
Vermutlich geht es anders und einfacher?!
viele Grüße,
Crypi
Guten Morgen liebes Forum,
ich habe es gestern geschafft eine Verbindung zwischen meinem PC und dem Mega32 über RS232 herzustellen.
Jubel! ;)
Jetzt stellt sich für mich die Frage wie sich etwas realisieren ließe, dass einer Fernsteuerung gleich kommt.
Dass heißt, so lange ich eine Taste drücke wird eine Aktion ausgeführt.
Bzw. so lange ein bestimmtes Zeichen immer und immer wieder an den µC gesendet wird, wird irgendeine Aktion ausgeführt, meinetwegen eine LED leuchtet.
Was für Möglichkeiten gibt es da?
Was mir als erstes einfallen würde, wäre die empfangenen Daten in einem Interrupt aufzufangen und dabei abzugleichen, ob das empfangene Zeichen mit einem bestimmten Steuerzeichen übereinstimmt und dann eine Aktion auszuführen. Das hätte allerdings den Nachteil, dass ich auch wenn keine Aktion ausgeführt werden soll zumindest ein "Stop" schicken muss, da sonst die Aktion die begonnen wurde bis in alle Ewigkeit weiterläuft, da die Interruptroutine ja nicht nochmal aufgerufen würde um zu merken, dass nichts mehr kommt.
Während ich das schreibe habe ich noch eine Idee.
Man drückt am PC (in dem dafür vorgesehenen Programm, dass noch zu schreiben wäre) eine Taste(z.B. Pfeil hoch) und hält sie gedrückt. Das Programm schickt über die serielle Schnittstelle einmal ein Zeichen (z.B. eine 1 ), sozusagen als OnKeyPress-Methode.
Der µC empfängt das Zeichen sammelt es in der Interrupt-Routine auf, analysiert, empfangenes Zeichen = 1 und setzt irgendeinen Port auf 1.
Solange also nichts weiter vom PC kommen würde bleibt der Port auf 1.
Jetzt lässt der Benutzer am PC die Taste los, die OnKeyUp-Methode schickt ein weiteres Zeichen (z.B. 4).
Der µC empfängt das Zeichen und weiß, dass die vorherige Aktion beendet ist, Port auf 0.
Klingt jetzt erstmal gar nicht schlecht, finde ich ;)
Was sagt ihr dazu?
Vermutlich geht es anders und einfacher?!
viele Grüße,
Crypi