Gast
#3011784
Hallo,
ich habe ein problem mit meinem lc-display
ich möchte von meinem mikrocontroller ATmega 8535, eine 4 stellige Zahl
ausgeben und habe dazu folgendes in der initialisierung des displays
stehen:
void lcd_zeichen(char Zeichen)
{
sbi(PORTD,rs); // rs = 1 Datenmodus
lcd_write(Zeichen);
_delay_ms(1);
}
________________________________________________________
void lcd_zahl(unsigned char Zahl)
{
lcd_zeichen(0x30+Zahl / 1000) ;Zahl %= 1000;
lcd_zeichen(0x30+Zahl / 100) ;Zahl %= 100; //30 von ASCII Code
//lcd_zeichen('.');
lcd_zeichen(0x30+Zahl / 10) ;Zahl %= 10;
lcd_zeichen(0x30+Zahl);
}
im main programm rufe ich das ganze wie folgt auf:
long Schalldruckverhaeltnis = 8324
lcd_text(1,"Lautstaerke: ");
lcd_zahl(Schalldruckverhaeltnis);
lcd_text(1," dB");
es zeigt mir allerding immer nur die letzten 3 stellen an und rundet ab
ca 217 auf 4 stellig zeigt aber trotzdem 0217 an
hoffentlich könnt ihr mir helfen