-         

Ergebnis 1 bis 4 von 4

Thema: LCD display geht nicht

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.11.2006
    Ort
    Geislingen a. d. Steige
    Alter
    26
    Beiträge
    344

    LCD display geht nicht

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,
    ich habe ein LCD Display LCD 162C LED von Reichelt
    und benutze die LCD Bibliothek von Peter Fleury.
    Im datenblatt steht nur was von 8 bit ansteuerung.
    Das display zeigt nur schwarze balken an.
    Mein älteres display LM16A21 von sharp funktioniert wunderbar.
    Muss man beim 162C LED bei 4 bit ansteuerung etwas beachten?

    Danke schon im voraus

    MfG
    Martin

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470
    was zu beachten ist bei den Reichelt LCDs, ist das der Kontroler von denen nicht ganz HD4470 kompaktibel ist, das war auch mein Problem, deshalb hab ich ne eigene ASM-Lib geschrieben. WEnn du vlt verraten würdest was für einen Controler du nutzt und welche sprache du progst kämme das der lösung schnell näher, der Quellcode wäre auch nicht schlecht da schleichen sich mal schnell Fehler ein.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.11.2006
    Ort
    Geislingen a. d. Steige
    Alter
    26
    Beiträge
    344
    hi,
    ich benutze einen ATmega16 mit 8 Mhz internem oszilator
    Ich progge in "C" mit WinAVR und AVR Studio 4

    Code:
    #include <avr/io.h>
    #include <inttypes.h>
    #include <avr/interrupt.h>
    #include <avr/signal.h>
    #include <avr/sleep.h>
    #include "lcd.c"
    /*************************Variablen********************************************************/
    uint8_t std = 0;
    uint8_t min = 0;
    uint8_t sec = 0;
    uint8_t day = 0;
    uint8_t auswahl = 0;
    uint8_t smiley = 0;
    uint8_t delay = 0;
    /****************************Timer Interupts********************************/
    SIGNAL(SIG_OUTPUT_COMPARE1A)
     {
     char cSREG;
     cSREG = SREG; // Statusregister puffern in Variable cSREG //
     if(delay >0) delay--;
     sec++;
     if(sec == 60){
     	min++;
    	sec = 0;
    	if(min == 60){
    		std++;
    		min = 0;
    		if(std == 24){
    			sec = 0;
    			min = 0;
    			std = 0;
    			day++;
    			if(day == 7){
    				day = 0;
    				}
    			}
    		}
     	}
     if(bit_is_clear(PINC,0)){
     		auswahl++;
    		if(auswahl == 4) auswahl = 0;
     		}
     /*if(bit_is_clear(PINC,4)){
     		auswahl++;
    		smiley++;
    		if(smiley == 7) smiley = 0;
     		}*/
     if(auswahl == 0){
    	 if(bit_is_clear(PINC,1)){
     		std++;
     		}
        if(bit_is_clear(PINC,2)){
     		std--;
     		}
     	}	
     if(auswahl == 1){
    	 if(bit_is_clear(PINC,1)){
     		min++;
     		}
        if(bit_is_clear(PINC,2)){
     		min--;
     		}
     	}	
     if(auswahl == 2){
    	 if(bit_is_clear(PINC,1)){
     		sec++;
     		}
        if(bit_is_clear(PINC,2)){
     		sec--;
     		}
     	}
     if(auswahl == 3){
    	 if(bit_is_clear(PINC,1)){
     		day++;
     		}
        if(bit_is_clear(PINC,2)){
     		day--;
     		}
     	}
    
     SREG = cSREG; 	// Statusregister aus Variable cSREG retten //
    
    
    }
    
    
    /******************************Initialisierung der PORTS**************************/
    void init_ports (void)
    {
    	DDRB = 0xff;	// Port B als Ausgang
    	DDRD = 0xff;	// Port D als Ausgang
    	DDRC = 0x00;	// Port C als Eingang
    	PORTC = 0xff;  //interne Pullup widerstände aktivieren
    
    }
    
    /************************Timer Initialisierung***************************************/
    void init_timer1 (void)
    {
    	// fclk=2MHz//
    	// N=Prescaler = 64//
    	// OCR1A= Output_Compare_Vergleichswert//
    	cli();									// Interrupts sperren! 
    	TCCR1A=	0x00;		// Compare- Ausgang A und B nicht toggeln
    	TCCR1B |= (1<<WGM12) | (1<<CS12);		//  Mode: Output Compare ; Prescaler: Faktor 256
    	OCR1AH=	0x7A;		// Output Compare High = 0x7A dez. 31250
    	OCR1AL=	0x12;		// Output Compare Low  = 0x12  
    	TCNT1H=	0x00;		// Timer1 auf 0 stellen
    	TCNT1L=	0x00;		// Timer1 auf 0 stellen
    	TIMSK |= (1<<OCIE1A);	// Timer1 Output Compare Interrupt Enable A aktivieren  (Bit setzen) //
    	sei();									// Interrrupts freigeben!
    }
    
    /*************************Hauptprogramm***************************/	
    int main (void)	//Hauptprogramm begin
    {	
    	init_timer1();
    	init_ports();
    	lcd_init(LCD_DISP_ON);
    	lcd_clrscr();
    	lcd_home();
    	lcd_puts("00:00:00");
    while (1){	//endlos schleife
    if(bit_is_clear(PINC,4)){
    	delay = 10;
    	}
    if(delay >0){
    	lcd_init(LCD_DISP_ON);
    	lcd_home();
    	lcd_gotoxy(0,0);
     switch (std){
    		case 0	:	lcd_puts("00");
    					break;
    		case 1	:	lcd_puts("01");
    					break;
    		case 2	:	lcd_puts("02");
    					break;
    		case 3	:	lcd_puts("03");
    					break;
    		case 4	:	lcd_puts("04");
    					break;
    		case 5	:	lcd_puts("05");
    					break;
    		case 6	:	lcd_puts("06");
    					break;
    		case 7	:	lcd_puts("07");
    					break;
    		case 8	:	lcd_puts("08");
    					break;
    		case 9	:	lcd_puts("09");
    					break;
    		case 10	:	lcd_puts("10");
    					break;
    		case 11	:	lcd_puts("11");
    					break;
    		case 12	:	lcd_puts("12");
    					break;
    		case 13	:	lcd_puts("13");
    					break;
    		case 14	:	lcd_puts("14");
    					break;
    		case 15	:	lcd_puts("15");
    					break;
    		case 16	:	lcd_puts("16");
    					break;
    		case 17	:	lcd_puts("17");
    					break;
    		case 18	:	lcd_puts("18");
    					break;
    		case 19	:	lcd_puts("19");
    					break;
    		case 20	:	lcd_puts("20");
    					break;
    		case 21	:	lcd_puts("21");
    					break;
    		case 22	:	lcd_puts("22");
    					break;
    		case 23	:	lcd_puts("23");
    					break;
    		case 24	:	lcd_puts("24");
    					break;
    		case 25	:	lcd_puts("25");
    					break;
    		case 26	:	lcd_puts("26");
    					break;
    		case 27	:	lcd_puts("27");
    					break;
    		case 28	:	lcd_puts("28");
    					break;
    		case 29	:	lcd_puts("29");
    					break;
    		case 30	:	lcd_puts("30");
    					break;
    		case 31	:	lcd_puts("31");
    					break;
    		case 32	:	lcd_puts("32");
    					break;
    		case 33	:	lcd_puts("33");
    					break;
    		case 34	:	lcd_puts("34");
    					break;
    		case 35	:	lcd_puts("35");
    					break;
    		case 36	:	lcd_puts("36");
    					break;
    		case 37	:	lcd_puts("37");
    					break;
    		case 38	:	lcd_puts("38");
    					break;
    		case 39	:	lcd_puts("39");
    					break;
    		case 40	:	lcd_puts("40");
    					break;
    		case 41	:	lcd_puts("41");
    					break;
    		case 42	:	lcd_puts("42");
    					break;
    		case 43	:	lcd_puts("43");
    					break;
    		case 44	:	lcd_puts("44");
    					break;
    		case 45	:	lcd_puts("45");
    					break;
    		case 46	:	lcd_puts("46");
    					break;
    		case 47	:	lcd_puts("47");
    					break;
    		case 48	:	lcd_puts("48");
    					break;
    		case 49	:	lcd_puts("49");
    					break;
    		case 50	:	lcd_puts("50");
    					break;
    		case 51	:	lcd_puts("51");
    					break;
    		case 52	:	lcd_puts("52");
    					break;
    		case 53	:	lcd_puts("53");
    					break;
    		case 54	:   lcd_puts("54");
    					break;
    		case 55	:	lcd_puts("55");
    					break;
    		case 56	:	lcd_puts("56");
    					break;
    		case 57	:	lcd_puts("57");
    					break;
    		case 58	:	lcd_puts("58");
    					break;
    		case 59	:	lcd_puts("59");
    					break;
    		case 60	:	lcd_puts("60");
    					break;
    		default:	lcd_puts("  ");
    					break;
    	}
     lcd_gotoxy(2,0);
     lcd_puts(":");
     lcd_gotoxy(3,0);
     switch (min){
    		case 0	:	lcd_puts("00");
    					break;
    		case 1	:	lcd_puts("01");
    					break;
    		case 2	:	lcd_puts("02");
    					break;
    		case 3	:	lcd_puts("03");
    					break;
    		case 4	:	lcd_puts("04");
    					break;
    		case 5	:	lcd_puts("05");
    					break;
    		case 6	:	lcd_puts("06");
    					break;
    		case 7	:	lcd_puts("07");
    					break;
    		case 8	:	lcd_puts("08");
    					break;
    		case 9	:	lcd_puts("09");
    					break;
    		case 10	:	lcd_puts("10");
    					break;
    		case 11	:	lcd_puts("11");
    					break;
    		case 12	:	lcd_puts("12");
    					break;
    		case 13	:	lcd_puts("13");
    					break;
    		case 14	:	lcd_puts("14");
    					break;
    		case 15	:	lcd_puts("15");
    					break;
    		case 16	:	lcd_puts("16");
    					break;
    		case 17	:	lcd_puts("17");
    					break;
    		case 18	:	lcd_puts("18");
    					break;
    		case 19	:	lcd_puts("19");
    					break;
    		case 20	:	lcd_puts("20");
    					break;
    		case 21	:	lcd_puts("21");
    					break;
    		case 22	:	lcd_puts("22");
    					break;
    		case 23	:	lcd_puts("23");
    					break;
    		case 24	:	lcd_puts("24");
    					break;
    		case 25	:	lcd_puts("25");
    					break;
    		case 26	:	lcd_puts("26");
    					break;
    		case 27	:	lcd_puts("27");
    					break;
    		case 28	:	lcd_puts("28");
    					break;
    		case 29	:	lcd_puts("29");
    					break;
    		case 30	:	lcd_puts("30");
    					break;
    		case 31	:	lcd_puts("31");
    					break;
    		case 32	:	lcd_puts("32");
    					break;
    		case 33	:	lcd_puts("33");
    					break;
    		case 34	:	lcd_puts("34");
    					break;
    		case 35	:	lcd_puts("35");
    					break;
    		case 36	:	lcd_puts("36");
    					break;
    		case 37	:	lcd_puts("37");
    					break;
    		case 38	:	lcd_puts("38");
    					break;
    		case 39	:	lcd_puts("39");
    					break;
    		case 40	:	lcd_puts("40");
    					break;
    		case 41	:	lcd_puts("41");
    					break;
    		case 42	:	lcd_puts("42");
    					break;
    		case 43	:	lcd_puts("43");
    					break;
    		case 44	:	lcd_puts("44");
    					break;
    		case 45	:	lcd_puts("45");
    					break;
    		case 46	:	lcd_puts("46");
    					break;
    		case 47	:	lcd_puts("47");
    					break;
    		case 48	:	lcd_puts("48");
    					break;
    		case 49	:	lcd_puts("49");
    					break;
    		case 50	:	lcd_puts("50");
    					break;
    		case 51	:	lcd_puts("51");
    					break;
    		case 52	:	lcd_puts("52");
    					break;
    		case 53	:	lcd_puts("53");
    					break;
    		case 54	:   lcd_puts("54");
    					break;
    		case 55	:	lcd_puts("55");
    					break;
    		case 56	:	lcd_puts("56");
    					break;
    		case 57	:	lcd_puts("57");
    					break;
    		case 58	:	lcd_puts("58");
    					break;
    		case 59	:	lcd_puts("59");
    					break;
    		case 60	:	lcd_puts("60");
    					break;
    		default:	lcd_puts("  ");
    					break;
    	}
     lcd_gotoxy(5,0);
     lcd_puts(":");
     lcd_gotoxy(6,0);
     switch (sec){
    		case 0	:	lcd_puts("00");
    					break;
    		case 1	:	lcd_puts("01");
    					break;
    		case 2	:	lcd_puts("02");
    					break;
    		case 3	:	lcd_puts("03");
    					break;
    		case 4	:	lcd_puts("04");
    					break;
    		case 5	:	lcd_puts("05");
    					break;
    		case 6	:	lcd_puts("06");
    					break;
    		case 7	:	lcd_puts("07");
    					break;
    		case 8	:	lcd_puts("08");
    					break;
    		case 9	:	lcd_puts("09");
    					break;
    		case 10	:	lcd_puts("10");
    					break;
    		case 11	:	lcd_puts("11");
    					break;
    		case 12	:	lcd_puts("12");
    					break;
    		case 13	:	lcd_puts("13");
    					break;
    		case 14	:	lcd_puts("14");
    					break;
    		case 15	:	lcd_puts("15");
    					break;
    		case 16	:	lcd_puts("16");
    					break;
    		case 17	:	lcd_puts("17");
    					break;
    		case 18	:	lcd_puts("18");
    					break;
    		case 19	:	lcd_puts("19");
    					break;
    		case 20	:	lcd_puts("20");
    					break;
    		case 21	:	lcd_puts("21");
    					break;
    		case 22	:	lcd_puts("22");
    					break;
    		case 23	:	lcd_puts("23");
    					break;
    		case 24	:	lcd_puts("24");
    					break;
    		case 25	:	lcd_puts("25");
    					break;
    		case 26	:	lcd_puts("26");
    					break;
    		case 27	:	lcd_puts("27");
    					break;
    		case 28	:	lcd_puts("28");
    					break;
    		case 29	:	lcd_puts("29");
    					break;
    		case 30	:	lcd_puts("30");
    					break;
    		case 31	:	lcd_puts("31");
    					break;
    		case 32	:	lcd_puts("32");
    					break;
    		case 33	:	lcd_puts("33");
    					break;
    		case 34	:	lcd_puts("34");
    					break;
    		case 35	:	lcd_puts("35");
    					break;
    		case 36	:	lcd_puts("36");
    					break;
    		case 37	:	lcd_puts("37");
    					break;
    		case 38	:	lcd_puts("38");
    					break;
    		case 39	:	lcd_puts("39");
    					break;
    		case 40	:	lcd_puts("40");
    					break;
    		case 41	:	lcd_puts("41");
    					break;
    		case 42	:	lcd_puts("42");
    					break;
    		case 43	:	lcd_puts("43");
    					break;
    		case 44	:	lcd_puts("44");
    					break;
    		case 45	:	lcd_puts("45");
    					break;
    		case 46	:	lcd_puts("46");
    					break;
    		case 47	:	lcd_puts("47");
    					break;
    		case 48	:	lcd_puts("48");
    					break;
    		case 49	:	lcd_puts("49");
    					break;
    		case 50	:	lcd_puts("50");
    					break;
    		case 51	:	lcd_puts("51");
    					break;
    		case 52	:	lcd_puts("52");
    					break;
    		case 53	:	lcd_puts("53");
    					break;
    		case 54	:   lcd_puts("54");
    					break;
    		case 55	:	lcd_puts("55");
    					break;
    		case 56	:	lcd_puts("56");
    					break;
    		case 57	:	lcd_puts("57");
    					break;
    		case 58	:	lcd_puts("58");
    					break;
    		case 59	:	lcd_puts("59");
    					break;
    		case 60	:	lcd_puts("60");
    					break;
    		default:	lcd_puts("  ");
    					break;
    	}
     lcd_gotoxy(0,1);
     switch (day){
    		case 0	:	lcd_puts("Montag       ");
    					break;
    		case 1	:	lcd_puts("Dienstag     ");
    					break;
    		case 2	:	lcd_puts("Mittwoch     ");
    					break;
    		case 3	:	lcd_puts("Donnerstag   ");
    					break;
    		case 4	:	lcd_puts("Freitag      ");
    					break;
    		case 5	:	lcd_puts("Samstag      ");
    					break;
    		case 6	:	lcd_puts("Sonntag       ");
    					break;
    		default:	lcd_puts("             ");
    					break;
    	}
     lcd_gotoxy(10,0);
     switch (smiley){
    		case 0	:	lcd_puts(":-)");
    					break;
    		case 1	:	lcd_puts(":-(");
    					break;
    		case 2	:	lcd_puts(":-x");
    					break;
    		case 3	:	lcd_puts(";-)");
    					break;
    		case 4	:	lcd_puts(":-/");
    					break;
    		case 5	:	lcd_puts(":-!");
    					break;
    		case 6	:	lcd_puts("8-)");
    					break;
    		default:	lcd_puts("   ");
    					break;
    	}
    	}
    	else{
    	lcd_init(LCD_DISP_OFF);
    	}
    	}		//endlos schleife 
    	
    }			//hauptprogramm ende
    MfG
    Martin

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.11.2006
    Ort
    Geislingen a. d. Steige
    Alter
    26
    Beiträge
    344
    kann mir denn niemand helfen?
    Bitte helft mit.

    MfG Martin

Berechtigungen

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