Hallo,
das Programm ist in C (CodeVision). Der ASM-Code vom Ulli funkt super!
Ich kann die Farben wechseln, kann Texte schreiben. Aber wenn ich das
Gerät ein paar mal aus/ein schalte, sieht der Bildschirm anders aus
--> Text steht in zwei Zeilen, Schrift ist größer......
Zum Programm -->
So schaut das INIT AUS:
//STV Reset Muss bei jeden einschalten gesendet werden
send_stv(0x30,0x00);
send_stv(0x30,0x00);
send_stv(0x00,0xdb);
send_stv(0x10,0x00);
//Konfig
send_stv(0x00,0xcf);
send_stv(0x10,0x4e);
send_stv(0x00,0xd0);
send_stv(0x15,0x32);
send_stv(0x00,0xcd);
send_stv(0x12,0x01);
send_stv(0x00,0xce);
send_stv(0x1b,0x95);
//Warum auch immer?
send_stv(0x00,0x00);
//Zeichne löschen!
for (i = 0; i < 154; i ++) // 154mal wiederholen Alle Zeichen im
Speicher löschen
{send_stv(0x10,0x0b);send_stv(0x10,0x0b);}
Zeichen senden..............
Die Sende Prozedure:
void send_stv (unsigned char byte_h,unsigned char byte_l)
{
unsigned char iic_counter=0x00;
CSN=0; //CS O ist aktiv
delay_us(10);
//High Byte Senden
iic_counter=0x00;
while (iic_counter <8)
{if ((byte_h&(0x80>>iic_counter))>0)
SDA=1; else SDA=0;
SCL=0;delay_us(10);SCL=1;delay_us(10);
iic_counter++;}
//Low Byte Senden
iic_counter=0x00;
while (iic_counter <8)
{if ((byte_l&(0x80>>iic_counter))>0)
SDA=1; else SDA=0;
SCL=0;delay_us(10);SCL=1;delay_us(10);
iic_counter++;}
CSN=1;delay_us(10);//CS 1 ist standby
}