Hallo, wollte gerade probieren ein LCD über Atmega16 mit Bascom zu programiieren. Folgender Code läuft im Simulator bei mir nicht. Der Simulator bleibt in der 1. Zeile stehen. Kommentiere ich die Zeilen die mit dem LCD zu tun haben aus läuft er einwandfrei durch und schaltet Portd.0 frei. Ideen? Danke & Gruß Matthias $regfile "m16def.dat" $crystal = 1600000 Config Portc = Output Config Portd = Output Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 20 * 2 Config Lcdbus = 4 Portd.0 = 1 Cls Lcd "Hallo" Stop
Hier gibt es keine Probleme beim Simulieren. Lediglich einen Syntaxfehler mit deinem Code. Ich schätze der Fehler kommt durch Copy&Paste vom BASCOM ins Forum durch den Umbruch der Zeile 5. Schade, dass es hier in der Forumsoftware keinen Zeilennummern-Anzeigemodus gibt.
1 | $regfile "m16def.dat" |
2 | $crystal = 1600000 |
3 | Config Portc = Output |
4 | Config Portd = Output |
5 | Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 |
6 | Config Lcd = 20 * 2 |
7 | Config Lcdbus = 4 |
8 | Portd.0 = 1 |
9 | Cls |
10 | Lcd "Hallo" |
11 | Stop |
Bei der Simulation an sich, kann man langsame Simulation leicht mit Hängenbleiben verwechseln. Die Initialisierung des simulierten AVRs und des LCDs brauchen etwas Zeit bis sie ausgeführt sind (auf meiner Kiste 20-30s von Zeile 1 bis Zeile 8). Man kann das in der Statuszeile des Simulators am Zustand Running bzw. Pause erkennen. In der folgenden Zeile ist sicher ein Schreibfehler $crystal = 1600000 1,6 MHz sind mir noch nicht bei AVRs begegnet. 16 MHz schon ;-)
danke, war wohl zu ungeduldig (dauert bei mir derziet scheinbar 2 minuten). die simulation des codes braucht also eine ewigkeit. Demnach kann ich die LCD simulation wohl bei mir vergessen oder werde lange warten müssen. Werde mir das dann vielleicht direkt hardwareseitig ansehen. Vielen Dank! Thread closed
scheint doch noch nicht ganz erledigt. denn das LCD zeigt immernoch nichts an auch wenn das programm durchläuft.
Hallo Matthias! In meinem Simulator habe ich mit dem Programm keine Probleme, wenn ich 4000000 MHz eingebe. Der Simulator wartet einen Moment und rattert dann durch. Hast Du das Lcd im Simulator geöffnet? CC
Beim Simulieren solltes du nach der Deklaration des MC den Befehl " $sim" eingeben ,es werden dann Wartezeiten wie wait usw übersprungen. Teste es einmal und setzte dein Quarz auf "16000000",für 16 Mhz.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.