Eigenes Zeichen für ein LC-Display

#3248127
Lesenswert?

Hallo zusammen,
ich habe momentan ein Problem mit mir eingene Zeichen für mein 
LC-Display zu erstellen. Ich komme jetzt schon seit Tagen nicht mehr 
weiter und bräuchte ein wenig unterstützung. Mein Problem ist folgendes:

Ich habe ein 16x2 LCD mit einem HD44780 Chipsatz. Dieses Display steuer 
ich über einem ATmega32 mit 4-Bit an. Den Mikrocontroller programmiere 
ich in C und verwende die "lcd-routines.h" - Bibliothek von deiser 
Seite. Die Ausgabe von einzelnen Character oder Strings funktioniert 
super. Ich verwende diese Methode zur erstellung eines Zeichens:

void lcd_generatechar( uint8_t code, const uint8_t *data )
{
  lcd_command( LCD_SET_CGADR | (code<<3) );

  for ( uint8_t i=0; i<8; i++ )
  {
    lcd_data( data[i] );
  }
}

Wenn ich das richtig verstanden habe, dann teile ich dem Display über 
den Befehl die Startposition des Zeichens an. Gleichzeitig sage ich ihm 
damit, dass ich auf dem CG-RAM schreiben möchte. Im Anschluss übermittel 
ich dann mein Datenarray. Mein Programmversuch sieht momentan so aus:

#include <avr/io.h>
#include <util/delay.h>
#include "lcd-routines.h"

#define F_CPU 8000000

unsigned char array [8] = {0x0A,0x0A,0x1F,0x11,0x11,0x0E,0x04,0x04};

int main(void)
{
    lcd_init();

    while(1)
    {
    lcd_generatechar(0, array);

    _delay_ms(500);
    lcd_home();
    }
}

Wenn ich es so versuche bleibt mein Diplay leider leer. Kann mir Jemand 
sagen was ich genau falsch mache? Oder liegt es daran, dass ich mit der 
Simulationssoftware ISIS-Proteus arbeite? Ich hatte aber vorher keine 
Probleme damit gehabt. Ich habe jetzt auch schon einige Foren durchsucht 
baer leider ohne Erfolg. Vielen Dank schon im Vorraus.

Gruß
Schirmo
Gast #3248163
Lesenswert?

Du mußt das Zeichen nicht nur definieren, sondern auch anzeigen.
Momentan sagst du nur dem LCD-Controller, wie das neue Zeichen aussehen 
soll. Aber du machst keine einzige Ausgabe, wo dieses Zeichen benutzt 
wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren