mikrocontroller.net

Forum: Compiler & IDEs Interrupt soll soll nicht auslösen!


Autor: Philipp (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also ich habe folgendes Programm:
Mein Programm empfängt Zeichen (Mit Hyperterminal) bis der von mir 
eingerichtete Speicher voll ist bzw. wenn der Write Zeiger sich dem Read 
Zeiger nähert dann wird ein Xoff gesendet! Obwohl er jetzt eigentlich 
keine Zeichen mehr empfangen dürfte (Nach XOFF) geht der Zähler trotzdem 
hoch wenn ich nachdem Xoff gesendet wurde auf die Tastatur tippe!

Meine Frage nun:
Wie verhindere ich den Interrupt den er ausführt sobald er ein Zeichen 
bekommt? Also ich will das ich nachdem Xoff geschickt wurde ich zwar 
noch auf die Tastatur tippen kann er sie aber nicht in den Speicher 
schreibt! Der Read Zeiger sollte natürlich weiterhin fröhlich die 
Zeichen aus dem Speicher schreiben! Zahlen eintippen will ich erst 
wieder ab da können sobald das Xon gesendet wurde!

Ich hoffe ihr steigt durch meine Problembeschreibung wenn fragen dann 
fragt! Ich bin für jegliche Hilfe schon mal im Vorraus sehr Dankbar!

MFG Philipp

Autor: Philipp (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und hier noch mal kurz meine UART!

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs jetzt selbst hinbekommen! Das Problem war das wenn ich eine IF 
anweisung in den Interrupt geschrieben habe das er das Zeichen nicht aus 
dem Seriellen Buffer löscht und somit den Interrupt immer wieder 
auslösst! Also hab ich es so gemacht wenn Xoff gesendet wurde wird die 
Variable XoffSend auf 1 gesetzt und in meinem Interrupt habt ich dann ne 
IF Anweisung das wenn XoffSend 1 ist soll er das Zeichen (aus dem 
seriellen Speicher) in eine Externe Variable (wird_geloescht) 
geschrieben damit der Puffer wieder leer ist!

Vielen Dank trotzdem an die die sich mein Programm gezogen haben und 
sich damit beschäftigt haben um mir zu helfen!

MFG Philipp

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.