mikrocontroller.net

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


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

$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

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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

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

Autor: Christof C. (tinybastler)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christof C. (tinybastler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, natürlich 4000000 Hz.

Autor: Der da (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.