Добрый день,ни как не могу разобраться в чем у меня ошибка.При обращение к функции 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 начальные буквы пропадают. Подскажите в чем проблема?Может у кого есть еще варианты как организовать бегущую строку.
|