bascom software uart waitkey abbrechen

Gast #2542085
Hallo,

ich muss mit dem SW-UART per WAITKEY Daten einlesen.
Das Problem ist, das nicht immer Daten anliegen und sich dann das 
Programm "aufhängt". INKEY kann ich nicht ohne weiteres verwenden, da 
die Abfrage und Auswertung zu umfangreich wird.

Beim HW-UART setzte ich einfach in einem Timerinterrupt Ucsra.rxc = 1 
und das Progamm läuft nach WAITKEY weiter. Gibt es beim SW-UART eine 
Variable die anzeigt das ein BYTE eingelesen wurde?

dani
Gast
Nein. Beim Software-UART mußt du pollen. Daß heißt, du must ständig 
nachschauen, ob ein Byte empfangen wurde. Besser wäre es, eine eigene 
Interruptroutine zu schreiben, wenn du mit der implementierten nicht 
zufrieden bist.
Gast
Hab ich mir schon gedacht. Die Schwierigkeit ist, das ich an das Layout 
und den µC (Mega8) gebunden bin und ohne die Routine schon bei 98% 
Speicherauslastung bin .... ich befürchte eine Routine zum "Pollen" und 
Auswerten passt nicht mehr rein ...
Ich hab auch schon versucht im Timerinterrupt Daten auf die UART zu 
schreiben, damit WAITKEY was zu lesen hat, funktioniert leider nicht.
Gast
dani schrieb:
> Die Schwierigkeit ist, das ich an das Layout
> und den µC (Mega8) gebunden bin und ohne die Routine schon bei 98%
> Speicherauslastung bin ....
Es gibt doch auch noch den ATmega168, der über doppelt so viel Flash 
verfügt.
Gast
Daran hab ich auch schon gedacht, wollte aber drum herum kommen.
Irgendwie kann ich den 164 und 168n nicht mit Ponyprog programmieren, 
obwohl ich ihn auswählen kann.
Gast
Versuch mal, dein Problem in C zu formulieren. Ich denke, der GCC 
(AVR-Studio) ist ein wenig effizienter als BASCOM. Vielleicht passt es 
dann ja noch in den ATmega8. Hast du in BASCOM die Option "Optimize 
code" mit einem Häkchen versehen?
Gast
Danke für die Antworten.

"optimize code" ist mir bisher nie aufgefallen ... werde ich mal 
probieren.

Mein SW-UART liegt sogar schon auf INT0.

Du meinst  das Auslesen mit INKEY durch eine negative Flanke initiieren?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.