- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 13

Thema: Programm hängt

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2007
    Ort
    München
    Beiträge
    23

    Programm hängt

    Hallo zusammen,
    ich habe ein Problem mit meinem Programm, wenn ich es durch den Simulator laufen lasse springt es von der Stelle Pind.2 = 1 wieder in die erste Zeile. Es sollte doch eigentlich in der Do - Loop Schleife hängen bleiben. Wer hat eine Erklärung warum das so ist.
    Viele Grüsse Kalle

    $regfile = "m32def.dat"
    $crystal = 1000000
    $hwstack = 132
    $swstack = 132
    $framesize = 164
    $baud = 19200

    Config Pinb.0 = Input 'Starttaster
    Config Pinb.1 = Input 'MV manuell ein / ausschalten
    Config Pinb.2 = Input 'im Menü scrollen
    Config Pinb.3 = Input 'Wert im Menü erhöhen
    Config Pind.2 = Input 'Wert im Menü verringern
    'config pind.3 = input(Res)
    'config pind.4 = input(Res)
    'config pind.5 = input(Res)
    Config Portc.2 = Output 'Magnetventil 1
    Config Portc.1 = Output 'Magnetventil 2
    Config Portc.0 = Output 'Kamera
    Config Portd.7 = Output 'Blitz

    Kamera Alias Portc.0
    Mv1 Alias Portc.2
    Mv2 Alias Portc.1
    Blitz Alias Portd.7
    Taster_start Alias Pinb.0 ' starttaster
    Taster_mm Alias Pinb.1 ' Taster_mv_manuell
    Taster_ms Alias Pinb.2 ' Taster_menü_scroll
    Taster_we Alias Pinb.3 ' Taster_wert_erhöhen
    Taster_wv Alias Pind.2 ' Taster_wert_verringern

    Pinb.0 = 1 'Pull Up einschalten da taster gegen gnd
    Pinb.1 = 1 'Pull Up einschalten da taster gegen gnd
    Pinb.2 = 1 'Pull Up einschalten da taster gegen gnd
    Pinb.3 = 1 'Pull Up einschalten da taster gegen gnd
    Pind.2 = 1 'Pull Up einschalten da taster gegen gnd

    Dim Wert1 As Word
    Dim Wert2 As Word
    Dim Wert3 As Word
    Dim Wert4 As Word
    Dim Wert5 As Word
    Dim Wert6 As Word
    Dim A As Byte
    Dim B As Byte
    Dim C As Byte

    Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0
    Config Lcd = 16 * 2

    Do
    If Taster_ms = 0 Then
    Incr A
    End If
    Cls
    Lcd A

    Loop


    End

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Hallo Kalle,

    welche Bascom Version nutzt Du? Bei mir gibt es dieses Problem nicht. Allerdings würde ich nicht ständig ein CLS vor LCD A setzen.

    z.B. so:
    Code:
    Cls
    Do
       If Taster_ms = 0 Then
          Incr A
       End If
       Locate 1 , 1
       Lcd A ; "  "
    
    Loop
    End
    Einzelschritte werden da aber schwierig

    Auffällig:
    Die Baudfehlerrate ist recht hoch.
    Der Stack ist großzügig gewählt. Kommt wohl noch bissel was 'vermaschtes' dazu? Eingang ist Standard bei PINs, kann man aber ruhig trotzdem konfigurieren, wenn der Platz reicht.
    Mehrere Pullups kann man zusammenfassen. Für Pullups das Port nutzen setzen.

    Statt
    Code:
    Pinb.0 = 1                                                  'Pull Up einschalten da taster gegen gnd
    Pinb.1 = 1                                                  'Pull Up einschalten da taster gegen gnd
    Pinb.2 = 1                                                  'Pull Up einschalten da taster gegen gnd
    Pinb.3 = 1                                                  'Pull Up einschalten da taster gegen gnd
    also besser so:
    Code:
    Portb = &B00001111                                          'Pullups
    Geändert von peterfido (14.06.2015 um 06:43 Uhr)
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    Home
    Beiträge
    213
    Hallo Kalle,

    habe deine Anfrage nicht so richtig verstanden. Erste Zeile im Programm oder LCD. LCD währ normal, hast kein Locate festgelegt.
    Nach Cls wird der komplette Puffer der LCD gelöscht.(sieht meistens auch hässlich aus wenn die Anzeige flackert)
    Siehe Hinweis von Peterfido.

    Zum Simulator. In der alten BASCOM- Testversion wird Zeile für Zeile abgefragt. Auch „End“.
    Mit Terminal müsstest Du am besten mit (Print A) sehen ob sich A bei jedem Tastendruck um eins erhöht.

    Gruß

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2007
    Ort
    München
    Beiträge
    23
    Hallo zusammen,
    @peterfido ich benutze die Version 2.0.7.5 . Das mit dem Port ist eine gute Idee. Die Baud brauche ich eigentlich gar nicht da es keine Verbindung nach außen gibt. Ich hab mir nur mal so ein Grundgerüst erstellt damit ich es nicht dauernd tippen muss. Es soll dann auch ein Menue entstehen in dem ich dann verschiedene Werte einstellen kann. Das Cls brauche ich für das Menue wenn der nachfolgende Eintrag kürzer ist als der vorige damit keine Textfetzen zurückbleiben, oder?
    @fredred Er springt zur ersten Zeile im Programm zurück also zu $regfile.
    Gruß Kalle

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Bei meinem Beispiel oben werden die nächsten evtl. vorhandenen Zeichen hinter A geleert. Gibt natürlich noch bessere Methoden dafür.

    Bei meinen Projekten schreibe ich nur aufs LCD wenn sich was geändert hat. Spart Programmlaufzeit, braucht aber mehr RAM. Das sind dann aber meist Grafik-LCDs.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2007
    Ort
    München
    Beiträge
    23
    Hallo zusammen,
    habe das Programm geändert und neu kompeliert, jetzt läuft es wie es soll. @peterfido du meintest sicher Pinb = &B00001111 nicht Portb = &B00001111.
    Gruß Kalle

Ähnliche Themen

  1. Asuro hängt oft bei Motorbetrieb
    Von der_smo im Forum Asuro
    Antworten: 7
    Letzter Beitrag: 02.02.2013, 21:41
  2. Problem: Programm hängt & Error 0x20[gelöst]
    Von copcom-weber im Forum Robby RP6
    Antworten: 10
    Letzter Beitrag: 21.01.2010, 09:34
  3. Programm hängt sich auf
    Von martin66119 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 07.10.2007, 21:06
  4. LCD hängt sich auf
    Von hotijack im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 30.05.2007, 16:47
  5. Lade Programm geht nicht (hängt sich auf)
    Von REX im Forum Robby CCRP5
    Antworten: 1
    Letzter Beitrag: 11.09.2004, 04:19

Berechtigungen

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

12V Akku bauen