INITLCD/de
(→See also) |
(→Remarks) |
||
(2 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | + | = <span class="f_Header">Funktion</span> = | |
− | + | Initialisiert ein LC-Display. | |
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
Line 15: | Line 15: | ||
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | = <span class="f_Header"> | + | = <span class="f_Header">Anmerkungen</span> = |
− | + | 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? | |
<div style="padding: 0px; margin: 0px;"> | <div style="padding: 0px; margin: 0px;"> | ||
{| border="0" cellpadding="0" cellspacing="0" | {| border="0" cellpadding="0" cellspacing="0" | ||
|- valign="baseline" style="vertical-align: baseline;" | |- valign="baseline" style="vertical-align: baseline;" | ||
| width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | | width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | ||
− | | | + | | Eine Umgebung mit elektrostatischen Störfeldern kann auf dem Display zu komischen Ausgaben führen. |
|} | |} | ||
</div> | </div> | ||
− | + | Man kann dann das Display ab und zu neu initialisieren. Wenn das Display initialisiert wird dann wird die anzeige auch gelöscht. | |
<div style="padding: 0px; margin: 0px;"> | <div style="padding: 0px; margin: 0px;"> | ||
{| border="0" cellpadding="0" cellspacing="0" | {| border="0" cellpadding="0" cellspacing="0" | ||
|- valign="baseline" style="vertical-align: baseline;" | |- valign="baseline" style="vertical-align: baseline;" | ||
| width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | | width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | ||
− | | | + | | 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. |
|} | |} | ||
</div><div style="padding: 0px; margin: 0px;"> | </div><div style="padding: 0px; margin: 0px;"> | ||
Line 44: | Line 44: | ||
|- valign="baseline" style="vertical-align: baseline;" | |- valign="baseline" style="vertical-align: baseline;" | ||
| width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | | width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | ||
− | | Xmega | + | | 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. |
|} | |} | ||
</div><div style="padding: 0px; margin: 0px;"> | </div><div style="padding: 0px; margin: 0px;"> | ||
Line 50: | Line 50: | ||
|- valign="baseline" style="vertical-align: baseline;" | |- valign="baseline" style="vertical-align: baseline;" | ||
| width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | | width="13" | <span style="font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;">•</span> | ||
− | | | + | | Zusammenfassend hat man also mit INITLCD mehr Kontrollmöglichkeiten zum Initialisieren des LC-Displays. |
|} | |} | ||
</div> | </div> | ||
| | ||
− | [[File:Notice.jpg|left|Notice.jpg]] | + | [[File:Notice.jpg|left|Notice.jpg]]Bei [[CONFIG LCDPIN|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. |
| | ||
− | [[File:Notice.jpg|left|Notice.jpg]] | + | [[File:Notice.jpg|left|Notice.jpg]]Der <span style="font-weight: bold;">XMEGA</span> 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. |
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
Line 71: | Line 71: | ||
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | = <span class="f_Header"> | + | = <span class="f_Header">Assembler</span> = |
− | + | Der generierter Assembler-Code : | |
Rcall _Init_LCD | Rcall _Init_LCD |
Latest revision as of 01:12, 25 February 2013
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 |
---|