Gast
#1224458
Guten Abend.
würde mich freuen wenn mich jemad Aufklären kann was dort Passiert.
Zitat aus dem LCD-Tutorial-Beispiel:
void lcd_data(unsigned char temp1)
{
[...]
1 LCD_PORT |= (1<<LCD_RS); // RS auf 1 setzen
2 temp1 = temp1 >> 4;
3 temp1 = temp1 & 0x0F;
4 LCD_PORT &= 0xF0;
5 LCD_PORT |= temp1; // setzen
lcd_enable();
[...]
Was Passiert dort?
Zeile 1:
PD4 wird auf 1 gesetzt... Also steht in portd [0 0 0 1 0 0 0 0]
Bedeutet der Interne Pullup wird aktivirt?
Zeile 2:
Der Inhalt von templ wird um 4 Bits rechts geschoben.
Zeile 3
Bit 7 6 5 4 wird auf 0 gesetzt Bit 3 2 1 0 bleiben wie sie sind.
Zeile 4:
Portd ist jetzt [1 1 1 1 0 0 0 0]
Zeile 5:
Bit 3 2 1 0 von Portd wird auf das gesetzt was noch in der templ steht.
die 1-en von Zeile 4 bleiben.
Dann werden PD 0 - 4 an das LCD übertragen.
PD 5 ist LCD-Enable. Das habe ich aber dann doch schon gesetzt. Oder?
Warum wird das nochmals aufgerufen? Muss das Enable einfach nochmal
Toggeln?
Warum setzt der Autor die unbenutzen Pins auch auif 1?
Würd mich sehr freuen wenn mir das jmd. ein bischen nahe bringen kann...
Danke und schöne Ostern...