Hallo, habe mir einen ATMega16 besorgt und ein 2x24 LC Display besorgt und es angeklemmt, nun weiß ich folgendes aus den Tutorials die ich auf dieser seite gefunden habe, mehr habe ich leider noch nicht rausgefunden, da die ganzen beispiele in asm sind, wenn ihr mir helft, werde ich daraus ein tutorial für c-code und display erstellen, habe schon zwei tage lang versucht was auszugeben, diese seite war bisher die hilfreichste. also hier mein programm, welches auch die Pinbelegung enthält: /* Port Display PD0 PD1 RS PD2 RW PD3 E PD4 D4 PD5 D5 PD6 D6 PD7 D7 */ #include <avr/io.h> #include <stdint.h> void main(void) { DDRA = 0xff; //Port A als Ausgang definieren PORTA = 0xFF; //alles aus DDRD = 0xff; //Port D als Ausgang definieren PORTD = 0xFF; //alles aus while(1) { /*Routine um das Display zu initialisieren, d.h.*/ /*Enable auf High, RW auf Low und RS auf High */ PORTD &= ~(1 << PD3); //PD3 (E) auf high PORTD &= ~(0 << PD2); //PD2 (RW) auf low PORTD &= ~(1 << PD1); //PD1 (RS) auf high } } So weiter bin ich leider noch nicht gekommen, ok ich koennte vielleicht noch die Initial-Routine ausserhalb der while schleife legen, wenn das display immer an sein sollte. aber wie könnte ich jetzt einfach nur den Text:"Hallo!" auf dem Display erscheinen lassen ?? wäre euch echt dankbar, ist alles sehr neu für mich, ich bastle wie gesagt auch aus den beiträgen nen c-tut für lcd routinen !! DANKE, Steffi W
Such im Google nach 'Peter Fleury' Auf seiner Web-Site findest Du fertige LCD-ansteuer- Funktionen in C. In lcd.h gibst Du Deine Port-Konfiguration bekannt, stellst nach die Taktfrequenz ein und ... fertig. D.h. solange Dein Display einen Standard-Controller benutzt.
Kannst auch mal das Programm bei mir anschauen: http://www.blafusel.de/misc/atmega8_io.html#6 Ist nicht ganz so aufgebläht und vielleicht mehr was für den Einstieg.
Hi Winne, vielen Dank für die super *.h Datei, die ist echt sehr übersichtlich gehalten und sehr vielseitig, nur habe ich leider keinerlei ahnung, wie ich diese auf mein 4bit-modus display anpassen müsste....? ich habe erstmal versucht so mit dem 8bit-modus was auszugeben, geht aber nicht, hier mein programm #include <avr/io.h> #include <stdint.h> #include <util/delay.h> #include <batron.h> void main(void) { LCD_Open(); //LCD_Cursor_On(); LCD_Write_Str('Hallo'); }
Habe ich das denn jetzt wenigstens richtig verdrahtet nach folgendem schema, welches in der lcd.h steht (hier der auszug) #define LCD_PORT PORTA /**< port for the LCD lines */ #define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */ #define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */ #define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ #define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */ #define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */ #define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */ #define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */ #define LCD_RS_PORT LCD_PORT /**< port for RS line */ #define LCD_RS_PIN 4 /**< pin for RS line */ #define LCD_RW_PORT LCD_PORT /**< port for RW line */ #define LCD_RW_PIN 5 /**< pin for RW line */ #define LCD_E_PORT LCD_PORT /**< port for Enable line */ #define LCD_E_PIN 6 /**< pin for Enable line */ also wie folgt habe ich es angeschlossen (die pin sachen brauch ich doch nur, wenn ich vom displ lesen will oder ??) D4 an PORTA0, D5 an PORTA1, D6 an PORTA2, D7 an PORTA3, RS an PORTA4, RW an PORTA5, E an PORTA6 müsste doch so richtig sein oder ??
:) ratet mal, da steht was aufm display !! riesenfreude, es klappt !!! :) Danke für die vielen heissen Tipps !!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.