vielen dank, habs gleich in die tat umgesetzt, funzt jedoch immer noch nicht.
![]()
das programm sieht jetzt so aus:
wenn ich das programm auf den mega32 lade, kommt nur mist raus.Code:(definitionen......) //Prototypen void delay_ms(unsigned int); void io_init(void); //LCD void lcd_data(unsigned char); void lcd_command(unsigned char); void lcd_enable(void); void lcd_init(void); void lcd_clear(void); // // void main(void) { ioinit(); lcd_init(); lcd_data("T"); lcd_data("e"); lcd_data("s"); lcd_data("t"); while(1); } // Initialisierung void ioinit(void){//0EINGANG 1AUSGANG DDRD=0b11100011; DDRB=0b00111111; } void delay_ms(unsigned int ms){ unsigned int zaehler; while (ms) { zaehler = F_CPU / 5000; while (zaehler) { asm volatile("nop"); zaehler--; } ms--; } } void lcd_init(){ LCD_PORT=0xFF; delay_ms(31); LCD_PORT=0b00000011;//zur initialisierung lcd_enable(); delay_ms(5); lcd_enable(); delay_ms(5); lcd_enable(); delay_ms(5); lcd_command(0b00000010);//4bit lcd_enable(); delay_ms(5); lcd_command(0b00101000);//4bit,2Zeilen delay_ms(5); lcd_command(0b00001100);//Display on, Cursor off delay_ms(5); lcd_command(0b00000100); } void lcd_enable(){ LCD_PORT |= (1 << LCD_E);//1 delay_ms(1); LCD_PORT &=~(1 << LCD_E);//0 delay_ms(1); } void lcd_data(unsigned char data){ unsigned char nibble; nibble=data>>4; //ersatz für "swap" LCD_PORT=nibble&00001111; LCD_PORT |= (1 << LCD_RS);//1 lcd_enable(); LCD_PORT=data&00001111; LCD_PORT |= (1 << LCD_RS);//1 lcd_enable(); delay_ms(1); } void lcd_command(unsigned char data){ unsigned char nibble; nibble=data>>4; LCD_PORT=nibble&00001111; lcd_enable(); LCD_PORT=data&00001111; lcd_enable(); delay_ms(1); }
beim compilen kommen diese warnings hier :
ZumExperimentieren.c:44: warning: passing argument 1 of 'lcd_data' makes integer from pointer without a cast
ZumExperimentieren.c:45: warning: passing argument 1 of 'lcd_data'
......
was bedeutet das ???
mfg maddin







Zitieren

Lesezeichen