- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 22

Thema: Mit Taster von einem Loop zum nächsten springen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2013
    Beiträge
    21
    Code:
    If ((Taste_old XOR Taste_new) AND Taste_new) = 1 Then Incr Modus
    Hier zeigt er mir eine Fehlermeldung an. Daher habe ich diese Zeile mal im Code weggelassen.

    Code:
    $regfile = "attiny13.dat"
    $crystal = 1200000
    $hwstack = 10
    $swstack = 10
    $framesize = 10
    
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.4 = Output
    Config Pinb.0 = Input
    
    Dim Modus As Integer
    Dim Anzahlmodi As Integer
    Dim Taste_old As Bit
    Dim Taste_new As Bit
    
    Modus = 1
    Anzahlmodi = 2
    Taste_new = 0
    
    Do
    
       Taste_old = Taste_new
       Taste_new = Pinb.0
       If Pinb.0 = 1 Then Incr Modus
    
    
       If Modus > Anzahlmodi Then Modus = 1
       Select Case Modus
       Case 1
          Gosub Lichteffekt1
       Case 2
          Gosub Lichteffekt2
    
       End Select
    
    Loop
    End
    Lustig:
    Solange ich den Taster gedrückt halte laufen alle Lichteffekte nach einander ab.
    Jenes Lichteffekt, dass gerade läuft während ich den Taster los lasse, läuft dann nur noch alleine.
    Im Grunde ganz witzig aber nicht das was ich zur zeit möchte.

    Ist vielleicht nur ein Tippfehler im obigen Code?

    Danke Peter
    Gruß Glenn

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Glenn,

    Zitat Zitat von Bow-Hunter Beitrag anzeigen
    Code:
    If ((Taste_old XOR Taste_new) AND Taste_new) = 1 Then Incr Modus
    Hier zeigt er mir eine Fehlermeldung an. Daher habe ich diese Zeile mal im Code weggelassen.
    TOLL, und welche Meldung ?????

    Zitat Zitat von Bow-Hunter Beitrag anzeigen
    Lustig:
    Solange ich den Taster gedrückt halte laufen alle Lichteffekte nach einander ab.
    Jenes Lichteffekt, dass gerade läuft während ich den Taster los lasse, läuft dann nur noch alleine.
    Im Grunde ganz witzig aber nicht das was ich zur zeit möchte.
    Das ist genau das Problem.
    Dein Programm erkennt die gedrückte Taste und zählt dann dauernd durch.
    Der Rest scheint zu funktionieren.

    Ist also nur das Problem mit der Fehlermeldung.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2013
    Beiträge
    21
    Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt.PNG
Hits:	16
Größe:	9,3 KB
ID:	29093
    Diese Fehlermeldung, ich hoffe es hilft.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,
    Lösch mal das "= 1" in der fraglichen Zeile.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2013
    Beiträge
    21
    Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt.PNG
Hits:	4
Größe:	8,1 KB
ID:	29098

    Ne leider auch nicht.
    Und nur ohne "1" ebenfalls nicht.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    und mit And statt AND

    Ich weiss nicht ob Bascom casesensitive ist?
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Groß- und Kleinschreibung ist bei Bascom glaube ich ziemlich egal.

    Was definitiv ein Problem zu sein scheint, sind die Klammern. Bascom meckert nämlich auch schon bei einer einfachen, unverschachtelten AND-Verknüpfung, wenn man sie in Klammern setzt. Da die Klammern ja aber aufgrund der Verschachtelung nötig wären, kann man das Problem lösen, indem man die beiden Verknüpfungen mit einem Hilfs-Bit nacheinander ausführen lässt:

    Code:
    Dim Taste_old As Bit
    Dim Taste_new As Bit
    Dim X As Bit
    Dim Modus As Byte
    
    
    Do
    
    
    X = Taste_old Xor Taste_new
    X = X And Taste_new
    
    
    If X = 1 Then Incr Modus
    
    
    Loop

    Dieser Code wird bei mir jedenfalls anstandslos kompiliert.

    Und @ Bow-Hunter: Ganz einfach kann man einen Tastendruck erkennen, wenn man den Taster einen Interrupt auslösen lässt, indem der Taster einen Pegelwechsel am Interrupt-Eingangspin bewirkt. Dann braucht man die ganze "Merkerei" mit Taste_old und Taste_new nicht...

Ähnliche Themen

  1. Drei Led´s mit einem Taster unabhängig von einander schalten
    Von p@ty im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 61
    Letzter Beitrag: 10.07.2014, 12:03
  2. von einem zu anderem springen?
    Von robots4-ever im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 08.04.2012, 20:24
  3. Screens wechseln mit 2 Taster (oder mit einem Taster)
    Von tordy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 14.07.2009, 13:39
  4. 3 Taster von RN-LCD-Adapter mit einem Port abfragen
    Von masabuana im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 20.07.2007, 12:23
  5. Von Unterprogramm zum Hauptprogrammanfang springen
    Von Hübi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 06.02.2007, 18:15

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress