реклама на сайте
подробности

 
 
> Поделитесь примером динамической индикации на Си, Хочется сделать правильно
Pyku_He_oTTyda
сообщение Sep 20 2006, 17:27
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Собственно вопрос в названии темы. Алгоритм понятен, но хочется посмотреть, как делают профи.


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Shurmas
сообщение Sep 21 2006, 12:09
Сообщение #2


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



у АВР есть АпНоут с динамической индикацией.
Go to the top of the page
 
+Quote Post
Семён
сообщение Sep 21 2006, 12:49
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



примерно так создаю индикацию. Сразу извеняюсь если, чтото забыл но общий принцип следующий:

// знакогенератор для анодов(какие сигменты зажигать)
unsigned char __flash indicator[]={0X7E,0X30,0X6D,0X79,0X33,0X5b,0X5F,0X70,0X7F,0X7B,0X4E};
// выбор номера разряда (
unsigned char __flash catodIn[]={0XF7,0XFB,0XFD,0XFE,0XEF,0XDF};
//буфер индикатора
unsigned char buferInd[6];
unsigned char __flash *p_ind;

// функция записи в индикатор
void IndicatorSave(unsigned char par1,unsigned char par2,unsigned char par3,unsigned char par4,unsigned char par5,unsigned char par6);

// так записываю в индикатор
void IndicatorSave(unsigned char par1,unsigned char par2,unsigned char par3,unsigned char par4,unsigned char par5,unsigned char par6)
{
buferInd[0]=par6;
buferInd[1]=par5;
buferInd[2]=par4;
buferInd[3]=par3;
buferInd[4]=par2;
buferInd[5]=par1; //первый символ
}

//далее обслуживаю индикатор примерно так
INDI_PORT=0; //гасим сигменты чтобы не было мерцания

// далее идет код обслуживания клавиатуры
.
.
.
//выбераю новую позициюпозицию знакоместа
ind.catod++;
if(ind.catod==5)
{
ind.catod=0;
}

//включаю новое знакоместо
CATOD_PORT=catodIn[ind.catod];


// включаю сегменты согласно знакоместу
INDI_PORT=*(p_ind+buferInd[ind.catod]);

Примерно так


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 10:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016