www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD-Modul Lm16A211 (mit HD44780A00) und Atmega32-16PU


Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich versuche seit geraumer Zeit an meinem Atmel Evaluationsboard
von Pollin (V 2.01) das LCD Modul LM16A211 zum laufen zu bringen.
Das LM16A211 hat den Controller HD44780A00 und ein 2 Zeiliges 16-Zeichen
langes Display und hat 14 Pins. Beim Pollin-Board sind alle Jumper 
entfernt (evtl. interaktion mit PC0 oder PC1).

Die Ansteuerung mache ich über 4-Bit-Mode und der LCD-Lib von Peter 
Fleury.

Pinbelegung:
RS-PB0
RW-PB1
E -PB2
DB4-PC0
DB5-PC1
DB6-PC2
DB7-PC3
(DB0-3 open)

Spannungsversorgung und Kontrastspannung sind i.O.. Es wird ein Balken
angezeigt.
Aber mehr auch nicht. Was ich auch im Programm verändere es 
initialisiert
nicht mal.

Liegt es an den Ports? Oder funzt die Library hier nicht?
Oder was könnte ich tun? Wenns gar nicht mehr geht muss ich
halt den 8 bit Modus verwenden und versuchen selber was zu schreiben.
Aber die Library wär schon schön.....

Auf dem Pollin Board hat der Atmega32-16PU einen externen 16MHz Quarz,
und die Fuse bits sind auch so gesetzt (denk ich).

Das Programm wird fehlerfrei übersetzt. Hier die geänderten 
Einstellungen im lib.h Header (ansonsten nichts geändert):
#define XTAL 16000000

#define LCD_LINES           2 
#define LCD_DISP_LENGTH    16 
#define LCD_LINE_LENGTH  0x0F  
#define LCD_START_LINE1  0x00 
#define LCD_START_LINE2  0x40 
#define LCD_START_LINE3  0x80 
#define LCD_START_LINE4  0xC0
#define LCD_WRAP_LINES      0

#define LCD_CONTROLLER_KS0073 0

#define LCD_IO_MODE      1
#define LCD_PORT         PORTC    
#define LCD_DATA0_PORT   LCD_PORT 
#define LCD_DATA1_PORT   LCD_PORT 
#define LCD_DATA2_PORT   LCD_PORT  
#define LCD_DATA3_PORT   LCD_PORT 
#define LCD_DATA0_PIN    0    
#define LCD_DATA1_PIN    1   
#define LCD_DATA2_PIN    2   
#define LCD_DATA3_PIN    3     
#define LCD_RS_PORT      PORTB 
#define LCD_RS_PIN       0    
#define LCD_RW_PORT      PORTB  
#define LCD_RW_PIN       1  
#define LCD_E_PORT       PORTB   
#define LCD_E_PIN        2     

Mein Programm lautet dann:
#include <avr/io.h>
#include <stdio.h>

#include "lcd.h"

int main() {

lcd_init(LCD_DISP_ON_CURSOR_BLINK);
lcd_clrscr();
lcd_puts("Hello world.");

while(1) { }
}

Kann mir irgendjemand helfen? Das Display zeigt nichts außer den
Balken.........

Danke!

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

JTAG-Fuse auch ausgemacht?

Gruß aus Berlin
Michael

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Juhu jetzt funzt es promt.
Da wär ich nie im Leben drauf gekommen.

Vielen vielen Dank!
Gruß, marco

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.