Например TDA7294

 Форум РадиоКот • Просмотр темы - Как передать двумерный массив HiTech PICC
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт окт 19, 2018 16:51:18



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Как передать двумерный массив HiTech PICC
СообщениеДобавлено: Чт апр 12, 2018 14:50:42 
Родился

Зарегистрирован: Ср апр 15, 2009 18:28:23
Сообщений: 13
Рейтинг сообщения: 0
Доброго дня.
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]);//Вывод очередного байта в индикатор
};
};

Как можно это сделать? Понимаю что через указатели - но не соображу... Грустный


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Как передать двумерный массив HiTech PICC
СообщениеДобавлено: Чт апр 12, 2018 15:03:26 
Модератор
Аватар пользователя

Карма: 75
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 3874
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
https://yandex.ru/yandsearch?clid=19230 ... D0%B8&lr=2
10 секунд и результат готов...

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 Профиль  
 
JLCPCB, 10 прототипов ПП всего за $2 и 2 дня доставка!

Крупнейший производитель печатных плат в Китае, 300,000+ заказчиков, 10,000+ он-лайн заказов в день.

Рассчитайте цену онлайн:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Как передать двумерный массив HiTech PICC
СообщениеДобавлено: Чт апр 12, 2018 16:45:51 
Родился

Зарегистрирован: Ср апр 15, 2009 18:28:23
Сообщений: 13
Рейтинг сообщения: 0
В простом С да, но в контроллерном ( HiTech PICC) далеко не всё так просто. Многие приёмы не работают, так как это не такой уж "настоящий" С/С++


Вернуться наверх
 Профиль  
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Второй конкурс по дизайну печатных плат от PCBWay!
Не в сети
 Заголовок сообщения: Re: Как передать двумерный массив HiTech PICC
СообщениеДобавлено: Чт апр 12, 2018 20:23:15 
Модератор
Аватар пользователя

Карма: 75
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 3874
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Покажите, что конкретно "не работает" ?

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 Профиль  
 
Более 10 000 000 оригинальных новых компонентов

Поставка электронных компонентов под ваш проект

Комплексные решения поставки электронных компонентов

Сэкономьте $30 при первом заказе на сумму боле $200 (только для посетителей нашего форума)
Не в сети
 Заголовок сообщения: Re: Как передать двумерный массив HiTech PICC
СообщениеДобавлено: Чт апр 12, 2018 21:32:17 
Родился

Карма: 2
Зарегистрирован: Вс сен 03, 2017 20:43:57
Сообщений: 16
Рейтинг сообщения: 0
Попробуйте такой вариант:
Код:
#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)

_________________
наработки https://ru.files.fm/u/a2sfccuf#/list/


Вернуться наверх
 Профиль  
 


Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y