Как передать двумерный массив HiTech PICC

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
PupaJr
Родился
Сообщения: 13
Зарегистрирован: Ср апр 15, 2009 17:28:23

Как передать двумерный массив HiTech PICC

Сообщение PupaJr »

Доброго дня.
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
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Как передать двумерный массив HiTech PICC

Сообщение Аlex »

https://yandex.ru/yandsearch?clid=19230 ... D0%B8&lr=2
10 секунд и результат готов...
Реклама
PupaJr
Родился
Сообщения: 13
Зарегистрирован: Ср апр 15, 2009 17:28:23

Re: Как передать двумерный массив HiTech PICC

Сообщение PupaJr »

В простом С да, но в контроллерном ( HiTech PICC) далеко не всё так просто. Многие приёмы не работают, так как это не такой уж "настоящий" С/С++
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Как передать двумерный массив HiTech PICC

Сообщение Аlex »

Покажите, что конкретно "не работает" ?
Реклама
Эиком - электронные компоненты и радиодетали
technik-1017
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс сен 03, 2017 19:43:57
Контактная информация:

Re: Как передать двумерный массив HiTech PICC

Сообщение technik-1017 »

Попробуйте такой вариант:

Код: Выделить всё

#include <pic.h>

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);
	}
}
Возможно проблема в отсутствии const в параметре функции.
Проверял на версии 9.50 (PIC16F628A)
Реклама
Ответить

Вернуться в «PIC»