Forum: Mikrocontroller und Digitale Elektronik Anfängerproblem: mega16 & lcd (Bascom)


von Matthias (Gast)


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

von Stefan B. (stefan) Benutzerseite


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 ;-)

von Matthias (Gast)


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

von Matthias (Gast)


Lesenswert?

scheint doch noch nicht ganz erledigt.
denn das LCD zeigt immernoch nichts an auch wenn das programm 
durchläuft.

von Christof C. (tinybastler)


Lesenswert?

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

von Christof C. (tinybastler)


Lesenswert?

Sorry, natürlich 4000000 Hz.

von Der da (Gast)


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.

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
Noch kein Account? Hier anmelden.