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

 
 
> Динамическая индикация
Reboot_s
сообщение Oct 20 2005, 13:07
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 9-05-05
Пользователь №: 4 855



Мне нужно с помощью динамической индикации, отображать информацию на трех светодиодных дисплеях. МК - AT90S2313. Дисплеи подвешены на порт B, а управление транзисторами которые включают общие катоды на змелю на порт D. Сколько сам не бился, нормально отображает только "первый" так сказать, первый,который подключишь. включаю два - первый мигает одним сегментом, а второй попросту рябит.
Может кто сказать какая нужна частота и дать пример программы. Только динамическая индикация за счет тамера0, а то таймер1 уже задействован.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MALLOY2
сообщение Oct 20 2005, 13:21
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Частота должна быть не менее 100 Гц * кол-во сегментов, в данном случае 3.

типа пример:


#define SEGMENT_COUNT 3
volatile unsigned int segment[SEGMENT_COUNT];


в прерывании от таймера вот такая шняга
{
static unsigned char cnt_seg = 0;
if (++cnt_seg == SEGMENT_COUNT) cnt_seg=0;
switch(cnt_seg)
{
case 0:
PORTD = xxx; //включаем 1 сегмент
PORTB = segment[0]; //выводим число
break;
case 1:
PORTD = xxx; //включаем 2 сегмент
PORTB = segment[1];
break;
case 2:
PORTD = xxx; //включаем 3 сегмент
PORTB = segment[2];
break;
}
}

в программе
segment[0] = 0x01; //вывести на 1 сегмент
segment[1] = 0x08; //вывести на 2 сегмент


P.S. Это программа только как пример в реальной жизни не рекомендую использовать в программах С особенно в прерываниях конструкции switch
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 01:33
Рейтинг@Mail.ru


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