Ich nutze einen Atmel ATtiny2313 zur Ansteuerung und den 8-Bit Datenmodus des Displays, weil die Initialisierung im 8-Bit-Modus im Datenblatt am einfachsten aussah.
Auf den Code bin ich nicht stolz, aber es ist ein Anfang und sehr nah am Datenblatt:
#include <avr/io.h>
#include <util/delay_basic.h>
typedef enum
{
FUNCTION_SET = 0b00111000,
DISPLAY_CONTROL = 0b00001111,
DISPLAY_CLEAR = 0b00000001,
DISPLAY_HOME = 0b00000010,
ENTRY_MODE_SET = 0b00000110
} INSTRUCTIONS;
void execute()
{
PORTD |= 0b01000000;
_delay_loop_2(1024);
PORTD &= 0b10111111;
}
int main()
{
DDRB = 0xFF;
DDRD = 0xFF;
PORTB = FUNCTION_SET;
execute();
PORTB = DISPLAY_CONTROL;
execute();
PORTB = DISPLAY_CLEAR;
execute();
PORTB = ENTRY_MODE_SET;
execute();
char* c = "Max ";
while(1)
{
int i;
for(i=0; c[i]!='\0'; i++)
{
PORTB = c[i];
execute();
}
_delay_loop_2(32768);
}
return 0;
}