Versuch0 Flashcards
Jedem Port sind 3 Kontrollregister zugeordnet
PORTx
PINx
DDRx
Data Direction Register (DDR)
Lesen/schreiben
Jedes Bit legt fest, ob der entsprechende Pin Ein- oder Ausgang ist
Port Register (PORT)
Lesen/schreiben
Legt für Pins konfiguriert als Ausgang fest, ob der Wert high oder low ist
Kontrolliert den pull-up Widerstand für Pins konfiguriert als Eingang
Port Input Register (PIN)
Lesen
Enthält den aktuellen Wert eines Pins (Ein- und Ausgang)
Initialisierung von variablen
uint8_t var1 = 200;
uint8_t var2 = 0b11001000; // var2 = 200;
uint8_t var3 = 0xC8; // var3 = 200;
Einzelne Bits der Register können durch Bitmasken manipuliert werden
// Bit 3 (beginnend bei 0) in Register reg setzen reg |= 0b00001000; // reg = reg | 0b00001000
// Bit 2 (beginnend bei 0) in Register reg löschen reg &= 0xFB; // 0b11111011 besser lesbar
// Bit 1 (beginnend bei 0) in Register reg invertieren reg ^= 0b00000010;
Buttons
► Können verwendet werden um Eingaben am Controller zu
tätigen
► Angeschlossen an die Pins des Mikrocontrollers
Müssen als Eingang konfiguriert werden
► Wird Button gedrückt liegt eine 0 am Mikrocontroller an
Initialisierung
Befehl: lcd_init(void)
Beispiel: lcd_init();
Löscht das Display. Das nächste Zeichen wird
in der ersten Spalte
und Zeile ausgegeben.
Befehl: lcd_clear(void)
Beispiel: lcd_clear();
Gibt ein einzelnes Zeichen aus.
Befehl: lcd_writeChar(char)
Beispiel: lcd_writeChar(‘!);
Gibt eine Ganzzahl ohne führende Nullen aus.
Befehl: lcd_writeDec(unit16_t)
Beispiel: lcd_writeDec(471);
Gibt eine Zeichenkette aus.
Befehl: lcd_writeString(const char*)
Beispiel: lcd_writeString(“xy”);
Using Makro PSTR()
// Saving a String to Flash const char * myString = PSTR (" Dies ist mein String ");
// Outputting a String to LCD with variable lcd_writeProgString ( myString );
// Directly without a variable lcd_writeProgString ( PSTR (" Direkt ausgegebener String "))