mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Simple Befehle über RS232 am ATmega16 steuern (in C)


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Roland Praml (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must Tastenabfrage/RS232 und Codeausführung trennen
function doSomething(unsigned char cmd) {
  // hier ein switch / if/then/else Konstrukt
  // das über cmd die gewünschten Befehle entgegennimmt
}


Schleife die periodisch die Taster abfrägt (am besten im Timer)
...
if (keypressed()) doSomething(keycode);
...

Interrupt der beim Empfang eines Zeichens auslöst (RX-Complete)
...
doSomething(UDR); // interpretiere Byte an RS232 wie einen Tastencode
...
den Rest musst dir aber selbst weiterbasten ;-)

Gruß
Roland

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.