Hallo zusammen, kurze Frage: Leider habe ich noch keinerlei Erfahrung mit der Implementierung von RS232 in ein C-Programm. Darum hoffe ich auf Eure Unterstützung. Folgende Anforderung: In meinem Projekt sind an einem ATmega16 vier Taster angeschlossen, welche jeweils eine separate Funktion steuert. (nur Counter mit unterschiedlicher Portzuweisung). An sich sehr primitiv. Nun soll noch die Möglichkeit implementiert werden, die gleichen Funktionen über RS232 zu steuern. Kann mir da jemand weiterhelfen und evtl. einen kurzen Quellcode bieten? Beste Grüße Tom
den Quelltext musst du schon alleine basteln. Schwierig ist aber nicht. Erstmal kannst du dir selbst irgendein Kommunikationsprotokoll ausdenken. Das kann im einfachsten Fall sogar ein einzelnes Byte sein, damit könntest du theoretisch schon mal 256 verschiedene Funktionen steuern. Für den Start reicht das schon mal. Also UART im MC initialisieren und auf hereintröpfelnde Bytes reagieren. Wichtig ist, dass du auf beiden Seiten die gleichen Schnittstellenparameter einstellst. Dazu noch einen MAX232 o.ä. als Pegelwandler, fertig.
Du must Tastenabfrage/RS232 und Codeausführung trennen
1 | function doSomething(unsigned char cmd) { |
2 | // hier ein switch / if/then/else Konstrukt |
3 | // das über cmd die gewünschten Befehle entgegennimmt |
4 | } |
5 | |
6 | |
7 | Schleife die periodisch die Taster abfrägt (am besten im Timer) |
8 | ... |
9 | if (keypressed()) doSomething(keycode); |
10 | ... |
11 | |
12 | Interrupt der beim Empfang eines Zeichens auslöst (RX-Complete) |
13 | ... |
14 | doSomething(UDR); // interpretiere Byte an RS232 wie einen Tastencode |
15 | ... |
den Rest musst dir aber selbst weiterbasten ;-) Gruß Roland
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.