HT PICC18 9.83, MPLAB8.87, PIC18F25K22.
Для вывода изображений на экран LCD используется стандартная процедура перебора колонок и строк 64х64. В соответствии с этим созданы 2хмерные массивы изображений со своими названиями но одинакового размера - точно под экран LCD.
При изменении ситуации надо выдать ту или иную картинку на экран.
В идеале так:
CODE:
Const char Ekran1 [64][64]
{ {0x00,........0x63} // 1 строка
.....
{0x00,........} // 64 cтрока
};
Const char Ekran2 [64][64]
{ {0x00,........0x63} // 1 строка битовых данных
.....
{0x00,........} // 64 cтрока
};
WriteLCD(Ekran1); // выдали первый экран
DelaySec(3); // пауза
WriteLCD(Ekran2); // выдали второй экран
DelaySec(3);
....
....
....
Const char Ekran1 [64][64]
{ {0x00,........0x63} // 1 строка
.....
{0x00,........} // 64 cтрока
};
Const char Ekran2 [64][64]
{ {0x00,........0x63} // 1 строка битовых данных
.....
{0x00,........} // 64 cтрока
};
WriteLCD(Ekran1); // выдали первый экран
DelaySec(3); // пауза
WriteLCD(Ekran2); // выдали второй экран
DelaySec(3);
....
....
....
Процедура вывода:
CODE:
for(p=0; p<8; p++) //Цикл по всем 8-ми страницам индикатора
{
WriteCode6464(p|0xB8);//Установка текущей страницы
WriteCode6464(0x40);//Установка текущего адреса для записи данных в 0
for(c=0; c<64; c++) //Цикл вывода данных
{
WriteData6464(Ekran1[p][c]);//Вывод очередного байта в индикатор
};
};
for(p=0; p<8; p++) //Цикл по всем 8-ми страницам индикатора
{
WriteCode6464(p|0xB8);//Установка текущей страницы
WriteCode6464(0x40);//Установка текущего адреса для записи данных в 0
for(c=0; c<64; c++) //Цикл вывода данных
{
WriteData6464(Ekran1[p][c]);//Вывод очередного байта в индикатор
};
};
Как можно это сделать? Понимаю что через указатели - но не соображу...