Bascom Befehl nur einmal ausführen

Gast #1371424
Hallo

Hier mein Code

Print "Programm Anfang"

Lcd:
  A = Right(a , 9)
  A = Left(a , 1)
  Cls
  Lcd A
  Wait 2
  A = ""
Onrxd:
  A = A + Chr(udr)
  If Len(a) > 10 Then
  Goto Lcd
  End If
Return
End

funktionieren tut er (habe das Ganze konfigurationsgefozzel obendran 
weggelassen!) doch wie stelle ich es an, dass das Programm nur einmal 
den Befehl "Print "Programm Anfang" ausführt?

Liebe Grüsse
#1371437
Aus welchem Interrupt?

In dem von dir geposteten Code sieht man keinen Interrupt
Und Gesetz dem Fall dass OnRxd die Interrupt FUnktion ist, dann solltest 
du tunlichst vermeiden aus diesem mittels einem goto auszusteigen. Du 
solltest goto überhaupt vermeiden, wenn es geht.

Dein Hauptprogramm sollte eine einzige Schleife bilden!
#1371450
Bascomania schrieb:
> Wenn ich den return rausnehme bekomm ich aber ne Fehlermeldung...

nämlich?

> Der Interrupt "Onrxd", der was von der UART empfängt, oder nicht?^^

Das kann ich aber von hier aus mit meiner Glaskugel nicht sehen :-)
#1371460
Schau dir doch einmal andere BASCOM Programm an.

Die sind immer alle nach einem Muster aufgebaut
1
' Configuration
2

3
' Einstellungen und Einmalaktionen
4

5
do
6
  ' Logik des Programms
7
loop
8
end
9

10
' unterprogramme  sub-endsub
11

12
' Interrupt handler
13
Onxxx:
14
  ' was ist beim Interrupt zu tun
15
  return
Gast #1371467
Ich bekomme die Fehlermeldung "Interrupt needs Return"

Ja, es empfängt den String denn es geht;)

Okay, hab jetzt mal Do-Loop eingefügt (nach dem Print Befehl), mein 
Problem: der Print-Befehl wird immer noch tausendemale ausgeführt;)
Gast #1371469
vielleicht so:

Print "Programm Anfang"

do                       'Hauptschleife, nichts tun nur auf Int. warten
loop

Lcd:
  A = Right(a , 9)
  A = Left(a , 1)
  Cls
  Lcd A
  Wait 2
  A = ""
Return

Onrxd:
  A = A + Chr(udr)
  If Len(a) > 10 Then
  Gosub Lcd
  End If
Return
End
Gast #1371477
Doch noch n'Problem:

Nachdem der Bearbeitete String aufm LCD angezeigt wurde startet mein 
Programm neu, das heisst der Pront Befehl wird nochmal ausgeführt :S
Wieso das, gibt für mich überhaupt keinen SInn...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.