Neue Interrupt bei neuer BASCOM Version ?

Gast #399386
Lesenswert?
• ▲
▼
Hallo,

ich habe die neueste BASCOM-Version, müsste 1.8.2 sein und wundere
mich, dass ich mit "altegewohnter" Ansteuerung des URXC nicht mehr
klarkomme :

ich habe URXC enabled, Inerrupts auch und eine Sprungmarke bei
Zeichenempfang über UART eingericht, wie schon so häufig und springe
mit einem RETURN wieder ins Hauptprogramm nach Auslösung des besagten
Interrupts.
Doch nun läuft die Interruptschleife pausenlos durch und springt nicht
ins Hauptprogramm zurück.

Ein Beispiel :

onrxd:
Led = 1
waitms 100
led = 0
return

Eigentlich soll die LED beim erfolgreichem UART-Empfang kurz
aufleuchten doch sie leuchtet dauerhaft und springt nicht
Hauptprogramm, was nun ?

Gruss
A. Arndt
#399388
Lesenswert?
• ▲
▼
Die Fähigkeit, mit Interrupts zu arbeiten ist doch kein Feature einer
Programmiersprache, sondern ein Hardwarefeature des jeweiligen AVRs.
Also sollte dazu auch das Datenblatt des jeweiligen AVRs gelten.

Wasteschleifen in der ISR sind tödlich, ISRs sollten so kurz wie
möglich gehalten werden. Und 100ms warten in der ISR ist eigentlich
eine Disqualifikation für den Programmierer, sorry.

Deine ISR wird vermutlich ständig aufgerufen, weil sie so elend lange
dauert (100ms + eigentliche Arbeit der ISR), dass inzwischen der
nächste Interrupt ausgelöst wurde.

Übrigens kann ein AVR kein BASCOM, sondern nur Maschinencode. Was Du in
BASCOM schreibst, interessiert ihn nicht. Wichtig ist der erzeugte
Maschinencode, den musst Du analysieren wenn das Programm nicht das
macht, was es soll.

...
Gast #399390
Lesenswert?
• ▲
▼
Hallo,

vielen Dank für die "klugen" Ratschläge, die 100ms sind nur ein Test,
ich sende im 1 Sekundentakt einen Befehl an den UART so müsste alle
Sekunde die LED kurz aufblitzen.

Fehler ist das ich nicht aus der Schleife rauskomme bei einmaliger
Auslösung, es geht hier nicht im Sinn oder nicht, sondern um die
Fehlfunktion und das das Listing mit alter BASCOM-Version geht und mit
neuer nicht.

Im Handbuch konnte ich keine passende Lösung finden...

Gruss
A. Arndt

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.