Bascom Befehl nur einmal ausführen

Gast #1371424
Lesenswert?

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
Lesenswert?

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!
#1371460
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren