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!!!
Lesezeichen