LCD Display zeigt nichts an.
Hallo,
habe zum testen ein Programm geschrieben das gar nichts weiteres macht als am Port B von meinem Atmega48 4 Datenbits zum LCD Display sendet. Hab das ganze mit der Grundlage vom Anfängertutorial auf mikorcontroller.net gemacht. Die Beschaltung sollte soweit korrekt sein. Ich nutze für das Display die Libraries von peter Fleury die ja sehr bekannt sind und wohl auch sehr häufig eingesetzt werden.
Hintergrundbeleuchtung funktioniert. Ich sehe in einer Zeile schwarze Balken die ich mit dem Kontrast (Poti) einstellen schärfer und schwächer stellen kann, habe das ganze so eingestellt das ich die schwarzen balken gerade noch so sehe. Es handelt sich um ein 2x16 Zeilen Display LCD TC1602A-09.
Ich habe unten mal das Programm angehangen.
Zur Frage: Warum sehe ich die Zeichen nicht die ich sende? Nutze ein STK500 Starterkit zum übertragen. Die LED zeigt nach dem übertragen an das alles in Ordnung ist. (Software = AVR Studio 5)
Code:
#include <avr\io.h>
#include <avr\interrupt.h>
#include <stdlib.h>
#include <inttypes.h>
#include "lcd.h"
void initial(void)
{
DDRD = 0xff; // PortD Ausgänge
DDRC = 0x00; // PortC Eingänge
DDRB = 0xff;
}
void print4(unsigned int x)
{
unsigned int y;
y=x/1000;lcd_data(y+0x30);x-=(y*1000);
y=x/100;lcd_data(y+0x30);x-=(y*100);
y=x/10;lcd_data(y+0x30);x-=(y*10);
lcd_data(x+0x30);
}
int main(void)
{
int variable = 0;
initial();
lcd_init(LCD_DISP_ON);
while(1)
{
variable = 9876;
lcd_data( 'A' );
lcd_data( 'D' );
lcd_data( 'C' );
lcd_data( '0' );
lcd_data( '=' );
print4(variable);
lcd_gotoxy( 0, 1 );
}
return 0;
}
VIELEN DANK fürs Anschauen!!!
Liste der Anhänge anzeigen (Anzahl: 1)
RW liegt bei mir laut dem Schaltungsbeispiel auf GND. Vielleicht liegt ja da der Fehler. habe dort einfach einen freien port angegeben. in diesem Fall PORTB6.
Liste der Anhänge anzeigen (Anzahl: 1)
Dann ist es klar das es nicht funktioniert, R/W ist notwendig zur Busy-Abfrage.
Liste der Anhänge anzeigen (Anzahl: 1)
Da ist die *.h verloren gegangen.
Hier kannst du ohne R/W einstellen.