while (1);
nach LCD_WriteZeichen('X');
und das flackern ist weg
Der Wert für LCD_RS ist doch 1, wir benötigen aber 4 (RS ist PortBit2)sobald LCD_RS auf 1 gesetzt wird sollte auch RB2 high ein (wertigkeit 4)Code:#define LCD_RS PORTBbits.RB2
werde es aber an einem einfacheren prog testen.
wersuch ich gleich mal...x = zeichen & 0xf0;
PORTLCD = x; //höherwertiges nibbel
LCD_RS = 1; // LCD Daten-Mode setzen
=D> =D> =D> ich hab ein zeichenCode:void LCD_WriteZeichen(unsigned char zeichen) { unsigned char x; delay100us(250); // LCD_BUSY(); // Warten bis LCD bereit ist LCD_RW = 0; // LCD im Schreiben-Mode LCD_RS = 1; // LCD im Befehl-Mode delay100us(1); x = zeichen & 0xf0; PORTLCD = x; //höherwertiges nibbel LCD_RS=1; delay100us(1); enable(); delay100us(50); //5ms warten nach den 1.nibble x = zeichen; x = (x << 4)& 0xf0; //niederwertiges nibbel PORTLCD = x; LCD_RS=1; delay100us(1); enable(); delay100us(50); //5ms warten nach den 2.nibble LCD_RS = 0; }
leider sieht es so aus als wenn es ständig neu geschrieben würde es flackert etwas.
while (1);
nach LCD_WriteZeichen('X');
und das flackern ist weg
Das bedeutet, es funktioniert? Juhu!
while(1); am Ende von main() ist ja klar, im Eifer des Gefechts glatt übersehen...
Viel Spass mit dem Display.
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
hm schade das ich hier kein bild posten kann
sonst würdest du jetzt ein foto des LCD sehen, au dem steht
HaLLo Mic vielen dan
tuetzung !!!
k fuer Deine Unters
danke noch mal,
jetzt kann ich beruhigt ins bett, sitze schon seit einer woche daran.
jetzt fehlen noch die feinheiten, aber der anfang ist ja schonmal da
dank nochmal ohne dich hätte ich bestimmt noch ne weitere woche gebraucht um das zu erziehlen.
hallo mic,
und alle anderen microcontroller freunde.
weiß einer von euch wieso ich zwar folgendermassen einen string ans lcd senden kann:
aber in der folgenden form:Code:. . . . void LCD_WriteString(unsigned char *string) { while(*string) { LCD_WriteZeichen(*string++); // zeichen am LC-Display ausgeben } void main (void) { unsigned char buffer[]="hallo"; LCD_Init(); LCD_WriteString(buffer); while(1); }
diese compiler fehlermeldungen bekomme?Code:void main (void) { LCD_Init(); LCD_WriteString("hallo.."); while(1); }
196:Warning [2054] suspicious pointer conversion
sie bezieht sich auf "LCD_WriteString("hallo..");"
LCD_WriteZeichen('H'); klappt doch auch.
ich ich müsste einem pointer wie *string ja auch in folgender vorm was zuweisen können:
string="hallo"; oder liege ich da falsch und er schickt <hallo> ins nirvana???
hoffe jemand kann mir helfen
Hallo Andreas,
kann ich Dir so auch noch nicht sagen, aber hier tummelst Du Dich also rum!
Gruß
Matthias \/
hi Matthias,
bist du etwa auch fleißig?
dieses Thema kann aber geschlossen werden
sehe https://www.roboternetz.de/phpBB2/viewtopic.php?t=41967
string an lcd senden, string in pointer speichern
const rom ist die lösung
Code:void LCD_WriteString(const rom int8 *string) { while(*string) { LCD_WriteZeichen(*string++); // zeichen am LC-Display ausgeben } }
Lesezeichen