Форум РадиоКот https://radiokot.ru/forum/ |
|
Как передать двумерный массив HiTech PICC https://radiokot.ru/forum/viewtopic.php?f=58&t=154161 |
Страница 1 из 1 |
Автор: | PupaJr [ Чт апр 12, 2018 13:50:42 ] |
Заголовок сообщения: | Как передать двумерный массив HiTech PICC |
Доброго дня. HT PICC18 9.83, MPLAB8.87, PIC18F25K22. Для вывода изображений на экран LCD используется стандартная процедура перебора колонок и строк 64х64. В соответствии с этим созданы 2хмерные массивы изображений со своими названиями но одинакового размера - точно под экран LCD. При изменении ситуации надо выдать ту или иную картинку на экран. В идеале так: Код: 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); .... .... .... Процедура вывода: Код: for(p=0; p<8; p++) //Цикл по всем 8-ми страницам индикатора { WriteCode6464(p|0xB8);//Установка текущей страницы WriteCode6464(0x40);//Установка текущего адреса для записи данных в 0 for(c=0; c<64; c++) //Цикл вывода данных { WriteData6464(Ekran1[p][c]);//Вывод очередного байта в индикатор }; }; Как можно это сделать? Понимаю что через указатели - но не соображу... Грустный |
Автор: | Аlex [ Чт апр 12, 2018 14:03:26 ] |
Заголовок сообщения: | Re: Как передать двумерный массив HiTech PICC |
https://yandex.ru/yandsearch?clid=19230 ... D0%B8&lr=2 10 секунд и результат готов... |
Автор: | PupaJr [ Чт апр 12, 2018 15:45:51 ] |
Заголовок сообщения: | Re: Как передать двумерный массив HiTech PICC |
В простом С да, но в контроллерном ( HiTech PICC) далеко не всё так просто. Многие приёмы не работают, так как это не такой уж "настоящий" С/С++ |
Автор: | Аlex [ Чт апр 12, 2018 19:23:15 ] |
Заголовок сообщения: | Re: Как передать двумерный массив HiTech PICC |
Покажите, что конкретно "не работает" ? |
Автор: | technik-1017 [ Чт апр 12, 2018 20:32:17 ] |
Заголовок сообщения: | Re: Как передать двумерный массив HiTech PICC |
Попробуйте такой вариант: Код: #include <pic.h> Возможно проблема в отсутствии const в параметре функции.volatile const unsigned char ekran1[2][2] = {{1,2},{3,4}}; volatile const unsigned char ekran2[2][2] = {{5,6},{7,8}}; char Add(const unsigned char a[][2]) { return(a[1][1]); } void main(void) { while(1) { TMR1L = 0x33; TMR1H = 0x22; TMR1L = Add(ekran1); TMR1H = Add(ekran2); } } Проверял на версии 9.50 (PIC16F628A) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |