Zeichenketten empfangen

OP #261458
Lesenswert?
• ▲
▼
Hallo zusammen!

Ich habe ein STK 500 Board mit einem  At90s8515 drauf. Ich möchte über
Uart Zeichenketten einlesen und je nach Befehl soll was ausgeführt
werden. z.b wenn ich im Terminal "LED1 an" soll er eine beliebige led
einschalten. Ich habe versucht zeichenketten mit getchar, getstring und
strcmp und co einzulesen und auszuwerten aber dies klappt nicht. Kann
mir da jemand weiterhelfen? Ich habe schon hier in den Foren gesucht
aber leider nix gefunden-
Gast #261461
Lesenswert?
• ▲
▼
Karsten, fang mal erstmal an saemtliche globalen Variablen, die von der
interrupt Routine modifiziert werden, als volatile zu deklarieren.
Ansonsten kommt der compiler auf die Idee, die Dinger wegzuoptimieren.
Gast #261463
Lesenswert?
• ▲
▼
volatile sagt dem compiler, die variable kann ausserhalb des normalen
Programmablaufs modifiziert werden. Der Compiler muss dann saemtliche
Optimierungen des Zugriffs auf diese Variable unterlassen. Wenn du die
Variable auf 0 initialisierst und im main dann auf != 0 checkst
optimiert der compiler normalerweise das ganze Konstrukt weg, weil das
Hauptprogramm die Variable nicht modifiziert, und die komische Routine
mit dem Namen interrupt() wird ja seiner Meinung nach garnicht
aufgerufen. Mit volatile gewoehnst du ihm das ab.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.