INITLCD/de
Contents |
Funktion
Initialisiert ein LC-Display.
Syntax
INITLCD
Anmerkungen
Das LC-Display wird automatisch initialisiert wenn LCD-Befehle im Programm benutzt werden.
Das geschieht durch einen Call zu _LCD_INIT.
Wenn der INITLCD-Befehl im Programm benutzt wird dann wird der automatische Aufruf disabled und das _LCD_INIT wird an der Stelle im Programm aufgerufen an der das INITLCD steht. (INITLCD wird übersetzt in einen Aufruf von _init_lcd.)
Wozu wird das gebraucht?
• | Eine Umgebung mit elektrostatischen Störfeldern kann auf dem Display zu komischen Ausgaben führen. |
Man kann dann das Display ab und zu neu initialisieren. Wenn das Display initialisiert wird dann wird die anzeige auch gelöscht.
• | Die LCD-Routinen basieren datauf, dass der WR-Pin mit Gnd verbunden ist. Wenn aber dieser Pin an einen Port-Pin angeschlossen wird dann muss der Logic-Pegel erst auf 0 gesetzt werden und danach kann das Display mit INITLCD initialisiert werden. |
• | Xmega Chips benötigen einen stabilen Oszillator. Dies wird durch einige CONFIG Befehle erreicht. Der INITLCD Befehl sollte nach diesen CONFIG Befehlen verwendet werden. Da der Xmega standardmäßig einen langsamen internen Oszillator verwendet würde das Programm ohne die Verwendung von INITLCD langsam starten. Siehe die Anmerkungen unten. |
• | Zusammenfassend hat man also mit INITLCD mehr Kontrollmöglichkeiten zum Initialisieren des LC-Displays. |
Bei CONFIG LCDPIN gibt es eine Option, den WR-Pin und das Busy Flag des Display zu benutzen . Wenn Sie genug Pins frei habendann ist das der beste Modus.
Der XMEGA hat einen eingebauten (internen) Oszillator der mit einer relativ langsamen Geschwindigkeit läuft. Wenn Ihr Programm die Geschwindigkeit auf 32 MHz setzt und Sie auch die $crystal=32000000 Direktive schreiben dann werden Sie eine Verzögerung beim Programmstart beobachten. Das kommt daher, dass die WArte-Routinen basierend auf 32 MHz berechnet werden aber die eigentliche TAktgeschwindigkeit 1 oder 2 MHz ist.
Es gibt zwei mögliche Lösungen:
- Sie können $crystal=1000000 benutzen und dann - nachdem Sie die Taktgeschwindigkeit mit CONFIG OSC gesetzt haben - ein zweites $CRYSTAL mit einer neuen Taktgeschwindigkeit benutzen.
- Sie können $INITMICRO benutzen und das CONFIG OSC in den _INIT_MICRO schreiben. Das stellt sicher, dass der Mikrocontroller so schnell wie möglich mit der gewünschten Geschwindigkeit läuft.
Assembler
Der generierter Assembler-Code :
Rcall _Init_LCD
Siehe auch
Beispiel
Kein Beispiel.
Languages | English • Deutsch |
---|