Så här blev det till slut. Nu kan jag skriva ÅÄÖåäö i mina texter till LCD utan att krångla.
Kod: Markera allt
//**************** generate char **********************
const char character_zero[] = {4,0,14,1,15,17,15,0}; //char å
const char character_one[] = {10,0,14,1,15,17,15,0}; //char ä
const char character_two[] = {10,0,14,17,17,17,14,0}; //char ö
const char character_three[] = {4,14,17,17,31,17,17,0}; //char Å
const char character_four[] = {10,14,17,17,31,17,17,0}; //char Ä
const char character_five[] = {10,14,17,17,17,17,14,0}; //char Ö
const char character_six[] = {0,14,21,27,31,17,14,0}; // gubbe
const char character_seven[] = {4,14,21,4,4,4,4,0}; //uppåtpil
void load_char() { // Load char to LCD CGRAM
char i;
Lcd_Cmd(64);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_zero[i]);
Lcd_Cmd(72);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_one[i]);
Lcd_Cmd(80);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_two[i]);
Lcd_Cmd(88);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_three[i]);
Lcd_Cmd(96);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_four[i]);
Lcd_Cmd(104);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_five[i]);
Lcd_Cmd(112);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_six[i]);
Lcd_Cmd(120);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_seven[i]);
}
//**************** END generate char **********************
char temp = 0;
int i,antchar ;
void skriv_LCD(int rad, int col, char *text ){
i=0 ;
antChar = strlen(text);
if (rad == 1) rad = 128 ;
if (rad == 2) rad = 192 ;
if (rad == 3) rad = 148 ;
if (rad == 4) rad = 212 ;
rad = rad + col - 1 ;
LCD_CMD(rad); // startrsd och startkolumn
do {
temp = text[i];
if (temp =='ä') temp = 1;
if (temp =='å') temp = 0;
if (temp =='ö') temp = 2;
if (temp =='Å') temp = 3;
if (temp =='Ä') temp = 4;
if (temp =='Ö') temp = 5;
Lcd_Chr_Cp(temp) ;
i++ ;
}while(i < antChar);
}
void main() {
TRISA = 0b00000000;
TRISB = 0b00000000;
TRISC = 0b00000000;
TRISD = 0b00000000;
TRISE = 0b00000111;
Lcd_Init();
load_char(); // load custom char.
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
skriv_LCD(1,1,"Å Ä Ö och å ä ö yes!") ; // rad 1 kolumn 1 + texten
}