Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MEGA8 и динамическая индикация
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
MAVi
История довольно банальная решил сэкономить на всем: микросхема. порты.плата под утюг
чтобы не сверлить Megu на панельке правда но припаял сверху как smd так вот имеем PORTD
подключен четыре старших бита на 514ИД1 четыре младших через транзистор на разряд
управляется 1 необходимо реализовать динамическую индикацию что-то в таком духе

CV

#define raz1 PORTD=0b00000001;
#define raz2 PORTD=0b00000010;
#define raz3 PORTD=0b00000100;
#define raz4 PORTD=0b00001000;

все погасили

PORTD=0b00000000;

допустим считали с ацп

out=read_adc(0);

надо вывести 1000

vdata=ceil(out)/1000;

здесь уже что-то не так
наверное надо делить на 1000
выводить в старший разряд
остаток делить 100 и тд

здесь вроде все правильно

vdata=vdata<<4;
получили то что выводить
сдвинутое на 4 разряда

PORTD|=vdata;
зажгли соответствующий разряд

PORTD|=raz1;

как это правильно реализовать
наверное былобы еще проще поменять местами разряд
и данные но вот так получилось
WHALE
В CV есть функция bcd2bin,не мучайтесь,почитайте в хэлпе.И нафига вам 514ИД1?Она для динамической индикации на 4 разряда вообще не пригодна,максимальный ток на сегмент 7,5ma.
Сделайте все на AVR:отчет АЦП->BCD код-7-сегментный код.Выделите под это дело отдельный порт.
Или ресурсов не хватает?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.