-         

Ergebnis 1 bis 9 von 9

Thema: LCD Ausgabe stimmt nicht

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    14.02.2004
    Ort
    Kaiserslautern
    Beiträge
    78

    LCD Ausgabe stimmt nicht

    Anzeige

    Hi,

    seit ich die neue Bascom Version 1.11.77 (Vollversion) nutze,
    simmt meine LCD Ausgabe nicht mehr.
    Habe mal ein kleines Testprogramm geschrieben um das Problem
    zu verdeutlichen.

    Code:
    $regfile = "m16def.dat"
    $crystal = 16000000                                         '16MHz-Quarz
    
    Ddrc = &B00010000
    
    Led Alias Portc.4
    
    Dim I As Byte
    
    
    '------------------------lcd---------------------------------------------
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portc.5 , Db7 = Portc.6 , E = Portd.1 , Rs = Portd.0
    
    Initlcd
    Cls
    Cursor Off
    '----------------------------------------------------------------------------------------------
    
    Locate 1 , 5
    Lcd "Testrutine"
    Locate 2 , 7
    Lcd "Handrad"
    Wait 2
    Cls
    
    I = 0
    
    
    Do
    
    Led = Not Led
    Cls
    
    Upperline
    Lcd "  " ; I
    
    Wait 1
    
    Incr I
    
    
    Loop
    
    
    End

    Die Textausgabe am Anfang geht noch so wie´s soll, auch die zu erwartende Null danach stimmt noch, aber dann kommt 49, 53,54.
    Die LCD Ausgabe stopt an diesem Punkt der Prozi läuft aber weiter,
    also die LED blinkt munter weiter. Nach einem Reset das gleiche von vorne, immer die selbe Reihenfolge, was kann das den sein??
    Ach ja, wenn ich Prog. mit meinem alten Bascom übersetze kommt das gleiche raus, und da bin ich mir sicher das es ging.


    Gruss Frank

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, villeicht ist der puffer im display voll, bei dieser geschwindigkeit kommt die ausgabe nicht mit. stell doch intern mal auf 4mhz oder setzt die waitzeit höher.
    mfg pebisoft

  3. #3
    Gast
    Hallo pebisoft,

    was meinst du " kommt nicht mit " in der Hauptschleife ist ein Wait 1 drin,
    sollte doch reichen, oder?. Wird die LCD-Ausgabe in diese Wait-Zeit immer aktualisiert, nein oder?

    werde es aber heute Abend mal versuchen

    Danke

    Gruss Frank

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    14.02.2004
    Ort
    Kaiserslautern
    Beiträge
    78
    sorry!! , war nicht eingeloggt

    Gruss Frank

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    14.02.2004
    Ort
    Kaiserslautern
    Beiträge
    78
    Hallo,

    habe mal den Prozi auf den internen Takt umgestellt, genau das selbe
    Ergebnis. Hab mal das Prog im Simulator (Bascom) laufen lassen,
    dort läufst wie´s soll, ist doch schon seltsam, oder?.

    Gruss Frank

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    14.02.2004
    Ort
    Kaiserslautern
    Beiträge
    78
    Hallo,

    muss mich noch mal hier melden, also ich komme nicht weiter?????.
    Habe das Programm jetzt so geändert das es nicht mal hochzählen muss.
    Einfach den Text am Anfang und nach der Pause eine Zahl.
    Aber warum auch immer kommt wieder die schei...ß Zahlenreihe nur
    diesesmal um ein weniger, also 0, 48, 52, 53 und dann wieder aus.
    Habe auch mal einen anderen Prozi versucht, das Gleiche.

    Bräuchte echt einen Hinweis, Danke!!

    Gruss Frank

  7. #7
    Gast
    Hallo,
    ich hatte auch das selbe Problem und hab nach einiger Zeit folgendes rausgefunden.
    Schreibe bei dir im Programm statt deiner Zeile (Lcd " " ; I )
    folgende Zeile:
    Lcd " " ; CHR(I)
    Dies sollte dann klappen.
    gruss
    Stefan

  8. #8
    Gast
    Hallo an alle,

    danke Stefan für deinen Tipp, das hat zwar keine Änderung gebracht,
    aber hat mich auf eine Idee gebracht.
    Bei der Neuinstallation von Bascom muss etwas schief gegangen sein,
    im HW-Stack (Compiler Optionen) stand 0 drin. Ich bin zwar nicht sicher was früher drin stand, aber es war nicht Null. Habe mal 22 eingetragen, und es ging auf anhieb, hatte da noch nie was dran rumgespielt deshalb ist es mir nicht gleich aufgefallen. Was hat das HW-Stack für eine Bedeutung?

    Also alles wieder beim alten, gut!!!!!!!!!!

    Danke an alle die mir helfen wollten!

    Gruss Frank

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    28
    Beiträge
    1.461
    HI

    Im Stack merkt sich der AVR so Sachen wie, wo (bei welcher Adresse) er bei einem Interrupt aufgehört hat und solche Scherze.
    Wenn du Funktionen aufrufst (lcd()), dann wird von dieser Anweisung nach irgendwo im FLASH gesprungen. Dass der AVR weis, wo er losgesprungen ist, wenn er wieder zurück will von deiner Routine,
    schreibt er die Adresse, an der die Anweisung steht in den Stack.

    Ist der aber 0, gibt es große Probleme mit Funktionen.

    Ich hoffe du verstehst's...

    Ganz liebe Grüße,
    Tobi
    http://www.tobias-schlegel.de
    "An AVR can solve (almost) every problem" - ts

Berechtigungen

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