Anfängerproblem: mega16 & lcd (Bascom)

Gast #840640
Lesenswert?

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
Persönliche Seite #840659
Lesenswert?

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 ;-)
Gast #840671
Lesenswert?

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
Gast #840780
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren