Jj, přesně tak, pokud použiju text "takhle" v jakykoli podobě tak to nefunguje a pokud ho rozeberu 't' 'a' 'k' 'h' 'l' 'e' postupně tak to funguje...
Kód: Vybrat vše
void writetxt (char text[],char size, unsigned int x1,unsigned int y1){
colmod16();
switch (size){
case 1:
frame(x1,319,y1,y1+7);
break;
case 2:
frame(x1,319,y1,y1+15);
break;
case 3:
frame(x1,319,y1,y1+23);
break;
case 4:
frame(x1,319,y1,y1+31);
break;
case 10:
frame(x1,319,y1,y1+79);
break;
}
data();
unsigned char byte1; // prvni byte ze znaku (u "_" je to 00000001)
unsigned char byte2; // druhy byte ze znaku
unsigned char byte3; // treti byte ze znaku
unsigned char byte4; // ctvrty byte ze znaku
unsigned char byte5; // paty byte ze znaku
unsigned char b1;
unsigned char bit0;
unsigned char bit1;
unsigned char bit2;
unsigned char bit3;
unsigned char bit4;
unsigned char bit5;
unsigned char bit6;
unsigned char bit7;
for (long i2=0;i2 < strlen(text);i2++){
switch (text[i2]){
// CISLOVKY
case '0':
byte1 = 0x3E; byte2 = 0x51; byte3 = 0x49; byte4 = 0x45; byte5 = 0x3E;
break;
case '1':
byte1 = 0x00; byte2 = 0x42; byte3 = 0x7F; byte4 = 0x40; byte5 = 0x00; //0x00, 0x42, 0x7F, 0x40, 0x00
break;
case '2':
byte1 = 0x42; byte2 = 0x61; byte3 = 0x51; byte4 = 0x49; byte5 = 0x46; //0x42, 0x61, 0x51, 0x49, 0x46
break;
case '3':
byte1 = 0x21; byte2 = 0x41; byte3 = 0x45; byte4 = 0x4B; byte5 = 0x31; //0x21, 0x41, 0x45, 0x4B, 0x31
break;
case '4':
byte1 = 0x18; byte2 = 0x14; byte3 = 0x12; byte4 = 0x7F; byte5 = 0x10; //0x18, 0x14, 0x12, 0x7F, 0x10
break;
case '5':
byte1 = 0x27; byte2 = 0x45; byte3 = 0x45; byte4 = 0x45; byte5 = 0x39; //0x27, 0x45, 0x45, 0x45, 0x39
break;
case '6':
byte1 = 0x3C; byte2 = 0x4A; byte3 = 0x49; byte4 = 0x49; byte5 = 0x30; //0x3C, 0x4A, 0x49, 0x49, 0x30
break;
case '7':
byte1 = 0x01; byte2 = 0x71; byte3 = 0x09; byte4 = 0x05; byte5 = 0x03; //0x01, 0x71, 0x09, 0x05, 0x03
break;
case '8':
byte1 = 0x36; byte2 = 0x49; byte3 = 0x49; byte4 = 0x49; byte5 = 0x36; //0x36, 0x49, 0x49, 0x49, 0x36
break;
case '9':
byte1 = 0x06; byte2 = 0x49; byte3 = 0x49; byte4 = 0x29; byte5 = 0x1E; //0x06, 0x49, 0x49, 0x29, 0x1E
break;
// VELKA PISMENA
case 'A':
byte1 = 0x7E; byte2 = 0x09; byte3 = 0x09; byte4 = 0x09; byte5 = 0x7E; //0x7E, 0x09, 0x09, 0x09, 0x7E
break;
case 'B':
byte1 = 0x7F; byte2 = 0x49; byte3 = 0x49; byte4 = 0x49; byte5 = 0x36; //0x7F, 0x49, 0x49, 0x49, 0x36
break;
case 'C':
byte1 = 0x3E; byte2 = 0x41; byte3 = 0x41; byte4 = 0x41; byte5 = 0x22; //0x3E, 0x41, 0x41, 0x41, 0x22
break;
case 'D':
byte1 = 0x7F; byte2 = 0x41; byte3 = 0x41; byte4 = 0x41; byte5 = 0x3E; //0x7F, 0x41, 0x41, 0x41, 0x3E
break;
case 'E':
byte1 = 0x7F; byte2 = 0x49; byte3 = 0x49; byte4 = 0x41; byte5 = 0x41; //0x7F, 0x49, 0x49, 0x41, 0x41
break;
case 'F':
byte1 = 0x7F; byte2 = 0x09; byte3 = 0x09; byte4 = 0x01; byte5 = 0x01; //0x7F, 0x09, 0x09, 0x01, 0x01
break;
case 'G':
byte1 = 0x3E; byte2 = 0x41; byte3 = 0x49; byte4 = 0x49; byte5 = 0x3A; //0x3E, 0x41, 0x49, 0x49, 0x3A
break;
case 'H':
byte1 = 0x7F; byte2 = 0x08; byte3 = 0x08; byte4 = 0x08; byte5 = 0x7F; //0x7F, 0x08, 0x08, 0x08, 0x7F
break;
case 'I':
byte1 = 0x00; byte2 = 0x41; byte3 = 0x7F; byte4 = 0x41; byte5 = 0x00; //0x00, 0x41, 0x7F, 0x41, 0x00
break;
case 'J':
byte1 = 0x31; byte2 = 0x41; byte3 = 0x41; byte4 = 0x41; byte5 = 0x3F; //0x31, 0x41, 0x41, 0x41, 0x3F
break;
case 'K':
byte1 = 0x7F; byte2 = 0x08; byte3 = 0x14; byte4 = 0x22; byte5 = 0x41; //0x7F, 0x08, 0x14, 0x22, 0x41
break;
case 'L':
byte1 = 0x7F; byte2 = 0x40; byte3 = 0x40; byte4 = 0x40; byte5 = 0x40; //0x7F, 0x40, 0x40, 0x40, 0x40
break;
case 'M':
byte1 = 0x7F; byte2 = 0x02; byte3 = 0x04; byte4 = 0x02; byte5 = 0x7F; //0x7F, 0x02, 0x04, 0x02, 0x7F
break;
case 'N':
byte1 = 0x7F; byte2 = 0x04; byte3 = 0x08; byte4 = 0x10; byte5 = 0x7F; //0x7F, 0x04, 0x08, 0x10, 0x7F
break;
case 'O':
byte1 = 0x3E; byte2 = 0x41; byte3 = 0x41; byte4 = 0x41; byte5 = 0x3E; //0x3E, 0x41, 0x41, 0x41, 0x3E
break;
case 'P':
byte1 = 0x7F; byte2 = 0x09; byte3 = 0x09; byte4 = 0x09; byte5 = 0x06; //0x7F, 0x09, 0x09, 0x09, 0x06
break;
case 'Q':
byte1 = 0x3E; byte2 = 0x41; byte3 = 0x51; byte4 = 0x21; byte5 = 0x5E; //0x3E, 0x41, 0x51, 0x21, 0x5E
break;
case 'R':
byte1 = 0x7F; byte2 = 0x09; byte3 = 0x19; byte4 = 0x29; byte5 = 0x46; //0x7F, 0x09, 0x19, 0x29, 0x46
break;
case 'S':
byte1 = 0x26; byte2 = 0x49; byte3 = 0x49; byte4 = 0x49; byte5 = 0x32; //0x26, 0x49, 0x49, 0x49, 0x32
break;
case 'T':
byte1 = 0x01; byte2 = 0x01; byte3 = 0x7F; byte4 = 0x01; byte5 = 0x01; //0x01, 0x01, 0x7F, 0x01, 0x01
break;
case 'U':
byte1 = 0x3F; byte2 = 0x40; byte3 = 0x40; byte4 = 0x40; byte5 = 0x3F; //0x3F, 0x40, 0x40, 0x40, 0x3F
break;
case 'V':
byte1 = 0x1F; byte2 = 0x20; byte3 = 0x40; byte4 = 0x20; byte5 = 0x1F; //0x1F, 0x20, 0x40, 0x20, 0x1F
break;
case 'W':
byte1 = 0x3F; byte2 = 0x40; byte3 = 0x30; byte4 = 0x40; byte5 = 0x3F; //0x3F, 0x40, 0x30, 0x40, 0x3F
break;
case 'X':
byte1 = 0x63; byte2 = 0x14; byte3 = 0x08; byte4 = 0x14; byte5 = 0x63; //0x63, 0x14, 0x08, 0x14, 0x63
break;
case 'Y':
byte1 = 0x03; byte2 = 0x04; byte3 = 0x78; byte4 = 0x04; byte5 = 0x03; //0x03, 0x04, 0x78, 0x04, 0x03
break;
case 'Z':
byte1 = 0x61; byte2 = 0x51; byte3 = 0x49; byte4 = 0x45; byte5 = 0x43; //0x61, 0x51, 0x49, 0x45, 0x43
break;
case ' ':
byte1 = 0x00; byte2 = 0x00; byte3 = 0x00; byte4 = 0x00; byte5 = 0x00; //0x61, 0x51, 0x49, 0x45, 0x43
break;
case '°':
byte1 = 0x00; byte2 = 0x07; byte3 = 0x05; byte4 = 0x07; byte5 = 0x00; //0x61, 0x51, 0x49, 0x45, 0x43
break;
}
for (long i=0;i < 5;i++){
//b1 = byte[i];
switch (i){
case 0:
b1 = byte1;
break;
case 1:
b1 = byte2;
break;
case 2:
b1 = byte3;
break;
case 3:
b1 = byte4;
break;
case 4:
b1 = byte5;
break;
}
bit0 = (b1 & 0b00000001)*255; // & je AND .. 0 AND 1 = 0 a 1 AND 1 = 1
bit1 = ((b1 & 0b00000010)>>1)*255; // >>1 p?esune bity o 1 místo vpravo
bit2 = ((b1 & 0b00000100)>>2)*255;
bit3 = ((b1 & 0b00001000)>>3)*255;
bit4 = ((b1 & 0b00010000)>>4)*255;
bit5 = ((b1 & 0b00100000)>>5)*255;
bit6 = ((b1 & 0b01000000)>>6)*255;
bit7 = ((b1 & 0b10000000)>>7)*255; // >>7 p?esune bity o 7 míst vpravo
switch (size){
case 1:
putcSPI(bit0); putcSPI(bit0); putcSPI(bit1); putcSPI(bit1); putcSPI(bit2); putcSPI(bit2); putcSPI(bit3); putcSPI(bit3);
putcSPI(bit4); putcSPI(bit4); putcSPI(bit5); putcSPI(bit5); putcSPI(bit6); putcSPI(bit6); putcSPI(bit7); putcSPI(bit7);
break;
case 2:
for (char iii=0;iii<2;iii++){
for (char ii=0;ii < 4;ii++){putcSPI(bit0);}
for (char ii=0;ii < 4;ii++){putcSPI(bit1);}
for (char ii=0;ii < 4;ii++){putcSPI(bit2);}
for (char ii=0;ii < 4;ii++){putcSPI(bit3);}
for (char ii=0;ii < 4;ii++){putcSPI(bit4);}
for (char ii=0;ii < 4;ii++){putcSPI(bit5);}
for (char ii=0;ii < 4;ii++){putcSPI(bit6);}
for (char ii=0;ii < 4;ii++){putcSPI(bit7);}
}
break;
case 3:
for (char iii=0;iii<3;iii++){
for (char ii=0;ii < 6;ii++){putcSPI(bit0);}
for (char ii=0;ii < 6;ii++){putcSPI(bit1);}
for (char ii=0;ii < 6;ii++){putcSPI(bit2);}
for (char ii=0;ii < 6;ii++){putcSPI(bit3);}
for (char ii=0;ii < 6;ii++){putcSPI(bit4);}
for (char ii=0;ii < 6;ii++){putcSPI(bit5);}
for (char ii=0;ii < 6;ii++){putcSPI(bit6);}
for (char ii=0;ii < 6;ii++){putcSPI(bit7);}
}
break;
case 4:
for (char iii=0;iii<4;iii++){
for (char ii=0;ii < 8;ii++){putcSPI(bit0);}
for (char ii=0;ii < 8;ii++){putcSPI(bit1);}
for (char ii=0;ii < 8;ii++){putcSPI(bit2);}
for (char ii=0;ii < 8;ii++){putcSPI(bit3);}
for (char ii=0;ii < 8;ii++){putcSPI(bit4);}
for (char ii=0;ii < 8;ii++){putcSPI(bit5);}
for (char ii=0;ii < 8;ii++){putcSPI(bit6);}
for (char ii=0;ii < 8;ii++){putcSPI(bit7);}
}
break;
case 10:
for (char iii=0;iii<8;iii++){
for (char ii=0;ii < 20;ii++){putcSPI(bit0);}
for (char ii=0;ii < 20;ii++){putcSPI(bit1);}
for (char ii=0;ii < 20;ii++){putcSPI(bit2);}
for (char ii=0;ii < 20;ii++){putcSPI(bit3);}
for (char ii=0;ii < 20;ii++){putcSPI(bit4);}
for (char ii=0;ii < 20;ii++){putcSPI(bit5);}
for (char ii=0;ii < 20;ii++){putcSPI(bit6);}
for (char ii=0;ii < 20;ii++){putcSPI(bit7);}
}
break;
}
}
for (int i4=0; i4 < size; i4++){
for (int i3=0; i3 < 16*size; i3++){
putcSPI(0);
}
}
}
CS = 1;
}