Simple Befehle über RS232 am ATmega16 steuern (in C)

Gast #683709
Lesenswert?
• ▲
▼
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
Gast #683724
Lesenswert?
• ▲
▼
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.
Gast #683758
Lesenswert?
• ▲
▼
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren