- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 27 von 27

Thema: LCD (KS0066) 4Bit-Mode init brauche hilfe, PIC 18f4550

  1. #21
    Benutzer Stammmitglied
    Registriert seit
    20.07.2008
    Ort
    Herford
    Alter
    40
    Beiträge
    52
    Anzeige

    E-Bike
    Der Wert für LCD_RS ist doch 1, wir benötigen aber 4 (RS ist PortBit2)
    Code:
    #define LCD_RS		PORTBbits.RB2
    sobald LCD_RS auf 1 gesetzt wird sollte auch RB2 high ein (wertigkeit 4)
    werde es aber an einem einfacheren prog testen.

    x = zeichen & 0xf0;
    PORTLCD = x; //höherwertiges nibbel
    LCD_RS = 1; // LCD Daten-Mode setzen
    wersuch ich gleich mal...

    Code:
    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;
    }
    =D> =D> =D> ich hab ein zeichen

    leider sieht es so aus als wenn es ständig neu geschrieben würde es flackert etwas.

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    20.07.2008
    Ort
    Herford
    Alter
    40
    Beiträge
    52
    while (1);
    nach LCD_WriteZeichen('X');
    und das flackern ist weg

  3. #23
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    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!

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    20.07.2008
    Ort
    Herford
    Alter
    40
    Beiträge
    52
    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.

  5. #25
    Benutzer Stammmitglied
    Registriert seit
    20.07.2008
    Ort
    Herford
    Alter
    40
    Beiträge
    52

    LCD int funktioniert, aber das senden von srtings???

    hallo mic,
    und alle anderen microcontroller freunde.

    weiß einer von euch wieso ich zwar folgendermassen einen string ans lcd senden kann:

    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);
    }
    aber in der folgenden form:
    Code:
    void main (void)
    {
    
       	LCD_Init();
    
    	LCD_WriteString("hallo..");
    
    	while(1);
    }
    diese compiler fehlermeldungen bekomme?
    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

  6. #26
    Neuer Benutzer Öfters hier
    Registriert seit
    15.08.2008
    Alter
    47
    Beiträge
    19
    Hallo Andreas,
    kann ich Dir so auch noch nicht sagen, aber hier tummelst Du Dich also rum!

    Gruß
    Matthias \/

  7. #27
    Benutzer Stammmitglied
    Registriert seit
    20.07.2008
    Ort
    Herford
    Alter
    40
    Beiträge
    52
    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					
    	}
    }

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress