Hilfe bei C - Routine für LCD

Gast #303407
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.
Gast
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');
}
Gast
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 ??

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.