Добрый день,ни как не могу разобраться в чем у меня ошибка.При обращение к функции 2-й раз происходит следующее вместо печать нормальной строки начальные буквы пропадают.
flash unsigned char ish_str_0[74]={' ',66,195,99,111,186,184,185,32,121,112,111,179,101,189,196,32,99,184,180,189,97,187,97,32,99,32,227,97,191,192,184,186,97,32,112,97,99,120,111,227,97,32,179,111,183,227,121,120,97,' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
flash unsigned char ish_str_1[21]={' ',72,101,191,32,179,32,99,190,184,99,186,101,32,111,193,184,178,111,186,' '};
.......
.......
.......
/************************************************************************************
Функция LCD бегущая стоки
************************************************************************************/
beg_stroka(int stroka)
{
unsigned char i;
unsigned char ish_str[70];
switch(stroka)
{
case 0:
for(i=0;i<73;i++)
{
ish_str[i]=ish_str_0[i];
}
break;
case 1:
for(i=0;i<20;i++)
{
ish_str[i]=ish_str_1[i];
}
break;
};
if(beg_str) {
for(i=0;i<16;i++)lcd_write_byte(0xC0+i,lcd_read_byte(0xC1+i));// установка позиций курсора
beg_str=0;
// запись очередного символа в крайний правую позицию
lcd_gotoxy(15,1);
lcd_putchar(ish_str[n_sim]);
if(++n_sim>m_end)n_sim=0;
}
}
вот обращение к функции
case 1:
beg_stroka(0);
for(w=0;w<73;w++)
{
beg_str=1;//разрешение бегущей строки
beg_stroka(0);
beg_str=0;
delay_ms(200);
}
lcd_clear();// очиста LCВ
break;
При при обращение к следующиму case начальные буквы пропадают.
Подскажите в чем проблема?Может у кого есть еще варианты как организовать бегущую строку.