Код: Выделить всё
const char msg[] = "12345";
PrintLCD(msg, sizeof(msg));
Код: Выделить всё
const char *msg = "12345";
PrintLCD(msg, sizeof(msg));
А при передаче строки в функцию размер строки потеряется в любом случае. Взятие sizeof(str) внутри функции вернет размер указателя, но не число элементов.
Я давно не имел дела с таким дисплеем и не помню таблицу перекодировки, но я бы сделал вот так:
Код: Выделить всё
void PrintLCD(const char *str, unsigned int len)
{
while(len-- && *str != '\0')
{
char code;
if(*str >= 'А')
code = Transcode(*str);
else
code = *str;
WriteData(code);
str++;
}
}
char Transcode(const char ch)
{
const char table[] = {155, 143, 142}; // таблицу перекодировки не помню!
return table[ch - 'А'];
}
ПыСы. Ну и можна какнить без палитических лозунгов, а? Осточертела ссаная палитика, от кого бы она не исходила.