INITLCD/de

From MCS Wiki AVR
< INITLCD(Difference between revisions)
Jump to: navigation, search
(See also)
(Remarks)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
== (**COPIED FROM ENGLISH PAGE**) === <span class="f_Header">Action</span> =
+
= <span class="f_Header">Funktion</span> =
  
Initializes the LCD display.
+
Initialisiert ein LC-Display.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Line 15: Line 15:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">Remarks</span> =
+
= <span class="f_Header">Anmerkungen</span> =
  
The LCD display is initialized automatic at start up when LCD statements are used by your code.
+
Das LC-Display wird automatisch initialisiert wenn LCD-Befehle im Programm benutzt werden.
  
This is done by a call to _LCD_INIT.
+
Das geschieht durch einen Call zu _LCD_INIT.
  
If you include the INITLCD statement in your code, the automatic call is disabled and the _LCD_INIT is called at the place in your code where you put the INITLCD statement. (initlcd is translated into a call to _init_lcd).
+
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.)
  
 
&nbsp;
 
&nbsp;
  
Why is this useful?
+
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>
| In an environments with static electricity, the display can give strange output.
+
| Eine Umgebung mit elektrostatischen Störfeldern kann auf dem Display zu komischen Ausgaben führen.
 
|}
 
|}
 
</div>
 
</div>
You can initialize the display then once in a while. When the display is initialized, the display content is cleared also.
+
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>
| The LCD routines depend on the fact that the WR pin of the LCD is connected to ground. But when you connect it to a port pin, you must first set the logic level to 0 and after that you can initialize the display by using INITLCD
+
| 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 chips need a stable oscillator. This is done with some CONFIG statements. The INITLCD should be placed after these commands. And since the Xmega by default has a slow internal oscillator, without using INITLCD at the proper location, your application would start slow. See the explanation below.
+
| 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>
| So in short you have more control when the LCD is initialized.
+
| Zusammenfassend hat man also mit INITLCD mehr Kontrollmöglichkeiten zum Initialisieren des LC-Displays.
 
|}
 
|}
 
</div>
 
</div>
 
&nbsp;
 
&nbsp;
  
[[File:Notice.jpg|left|Notice.jpg]]The&nbsp;[[CONFIG LCDPIN|CONFIG LCDPIN]]&nbsp;has an option to use the WR pin, and use the busy flag of the display. If you have enough pins, this is the best mode.
+
[[File:Notice.jpg|left|Notice.jpg]]Bei&nbsp;[[CONFIG LCDPIN|CONFIG LCDPIN]]&nbsp;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.
  
 
&nbsp;
 
&nbsp;
  
[[File:Notice.jpg|left|Notice.jpg]]The&nbsp;<span style="font-weight: bold;">XMEGA</span>&nbsp;has a built in internal oscillator that runs at a relative slow speed. If your code sets the speed to 32 MHz and you also include the $crystal=32000000 directive, you will notice a delay in the start of the code. This is caused by the fact that the delay routines are calculated with the 32 Mhz frequency, but the actual oscillator speed is 1 or 2 MHz.
+
[[File:Notice.jpg|left|Notice.jpg]]Der&nbsp;<span style="font-weight: bold;">XMEGA</span>&nbsp;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.
  
There are 2 solutions possible.
+
Es gibt zwei mögliche Lösungen:
  
- you can use $crystal=1000000 and then after you have set up the clock speed with CONFIG OSC, you can use another $CRYSTAL directive with the new speed.
+
- 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.
  
- you use $INITMICRO and put the CONFIG OSC in the _INIT_MICRO code. This will ensure that the micro will run at the specified speed early as possible.
+
- 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;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Line 71: Line 71:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">ASM</span> =
+
= <span class="f_Header">Assembler</span> =
  
The generated ASM code&nbsp;:
+
Der generierter Assembler-Code&nbsp;:
  
 
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.

 

Notice.jpg
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.

 

Notice.jpg
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

LCD , CONFIG LCDPIN

 

 

Beispiel

Kein Beispiel.



Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language