Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамическая индикация
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Reboot_s
Мне нужно с помощью динамической индикации, отображать информацию на трех светодиодных дисплеях. МК - AT90S2313. Дисплеи подвешены на порт B, а управление транзисторами которые включают общие катоды на змелю на порт D. Сколько сам не бился, нормально отображает только "первый" так сказать, первый,который подключишь. включаю два - первый мигает одним сегментом, а второй попросту рябит.
Может кто сказать какая нужна частота и дать пример программы. Только динамическая индикация за счет тамера0, а то таймер1 уже задействован.
MALLOY2
Частота должна быть не менее 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
andrvisht
Частота выбирается с учетом инерционности человеческого зрения
Минимум считается 25Гц, приемлимой будет 50 Гц.
Т. о. Вам нужно чтобы время отображения на всех 3-х индикаторах составило макимум 20ms. Т .е. делителем ставите 7ms и счетчик на 3. По каждому прерыванию сначала гасите всех, потом ложите данные в порт по соответствующему индикатору, и включаете всех. И так далее. Желательно еще разрешить глобальные прерывания во всех кроме индикаторного чтобы не было подмаргивания.
Примерно так.
prottoss
Побольше посещай сайт производителя http://atmel.com и российский http://atmel.ru. Снимется масса вопросов
Rash
AVR242 прочти, он есть на русском, вроде на www.gaw.ru, да и на atmel.com всё это есть
Reboot_s
За пример спасибо, жаль только, что я в С ни в зуб ногою)) А данные сайты я посещаю и AVR242 у мну есть, и по русски и по английски. В общем, что надо я услышал. Особое спасибо &-rey biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.