- 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
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    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! \/

  2. #2
    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ß

  3. #3
    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

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    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! \/

  5. #5
    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

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    @peterfido du meintest sicherPinb = &B00001111 nicht Portb = &B00001111.
    Nein, das stimmt schon so mit PORT! In die PIN-Register werden mit jeder Taktflanke die logischen Zustände übernommen, die in diesem Moment an den korrespondierenden Anschlüssen des Controllers anliegen. Es macht also wenig Sinn sie aktiv zu beschreiben, oder anders gesagt, sie sind reine "Auslese"-Register.

    Die PullUp-Widerstände werden daher über das PORT-Register ein- und ausgeschaltet, wenn der I/O-Anschluss ein Eingang ist. In Deinem Code sind die PullUps im Moment also definitiv abgeschaltet.

    Gruß,

    Daniel

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

    Variable A ist ein Byte. Mit Incr A wird diese mit Taster hochgezählt. Ist A>255 könnte es sein ein Fehler wird generiert und Do Loop wird unkontrolliert verlassen. Ein END nach Loop ist nicht zwingend aber wie Du erfahren hast hilfreich. Programmablauf wird ortendlich beendet. Sollten nach Loop weitere Programmteile stehen, und kein END eingefügt, geht es weiter und die Fehlersuche wird Aufwendig.

    Kleiner Hinweis zum LCD- Menü:
    Ich mache es mit einer Statusabfrage der verschiedenen Auslöser für Anzeige.

    Dim Lcd_aktualisieren As Byte 'Zähler für LCD-Anzeigen
    'Warte bis LCD bereit, falls gleichzeitig Spannung eingeschaltet wird
    Waitms 250
    Lcd_aktualisieren = 255 'ist Startanzeige

    Nun lege ich mal mein bescheidenes Programm “Bus-Modul“ im Anhang. Dort findest Du bestimmt eine Anregung wie eine LCD-Anzeige „Schick“ aussieht.

    Gruß
    Angehängte Dateien Angehängte Dateien

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2007
    Ort
    München
    Beiträge
    23
    Hallo fredred,
    bis ich das gelesen geschweige kapiert hab vergeht ein halbes Jahr. Bin absoluter Programmieranfänger .Hab mir gedacht A wird hochgezählt (Anzahl der Menueeintrage max. 7). Mit select case springe ich in die Menue´s und verstelle dort die Werte.

    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
  •  

LiFePO4 Speicher Test