Ну вы прям меня вообще за идиота считаете.
Цитата
Да ну? А Вы полагали, что руссие литеры в Win кодировке на LCD должны смотреться как-то иначе?
Как вы считаете как это будет выглядеть на LCD "1.\x42\x70\x65\xBC\xC7.", //1.Время.
И с чего вы решили, что я напрямую на LCD кидаю.
Цитата
передаются, передаются - не надо диагнозы из пальца высасывать и рефреном повторять
Ничего я не высасывал из пальца, я выводил данные на терминал и портмонитором смотрел, что на него реально приходит.
Цитата
Когда даже в элементарной набивке текста опечатка на опечатке (можете поискать три неправильных кавычки в своем примере).
Я это для примера привёл, если вы страждете получить полный исходник то получите:
Цитата
const uint8 *men0[]=
{
"1.Пункт 1",
"2.Пункт 2
"3.Пункт 3"
};
uint8 menu_(uint8 y, uint8 x, const uint8 **t)
{
uint8 z=0,w,s;
lcd_clr();
lcd_putsf(0,t[x]);
//-----------------------
while(1)
{
if(key_press()) z=read_data_key();
if(z=='2')
{
x++;
if(x>y) x=0;
lcd_clr();
lcd_putsf(0,t[x]);
for(w=0;w<20;w++)
{
//if(!(t[x][w])) break;
s=t[x][w];
u1_putchar(s);
}
u1_putchar(10);
u1_putchar(13);
z=0;
}
if(z=='8')
{
x--;
if(x==0xff) x=y;
lcd_clr();
lcd_putsf(0,t[x]);
z=0;
}
if(z=='6') break;
if(z=='4') {x=255; break;}
}
return x;
}
void main_menu(void)
{
uint8 x=0;
while(1)
{
x=menu_(2,x,men0);
if(x==255) break;
//------------------------------
switch(x)
{
case 0: adj_time(); break;
case 1: adj_time(); break;
case 2: adj_time(); break;
};
//------------------------------
}
}
void adj_time(void)
{
lcd_clr();
lcd_puts(1,"Подменю.");
delay_us(us(1000000));
}
Цитата
И не обзывайте все подряд uint8 - строки есть строки и char это не всегда uint8.
Uint8 это макрос unsigned char.