Зарегистрирован: Вт сен 11, 2012 20:21:37 Сообщений: 211
Рейтинг сообщения:0
Здравствуйте! Помогите пожалуйста разобраться в таком вопросе: имеется кусок кода термометра на 7-ми сегментном индикаторе. В коде есть строки и комментарий - "Меняем эти числа для другого индикатора":
#define a 32 #define b 128 #define c 2 #define d 8 //Меняем эти числа для другого индикатора #define e 16 #define f 64 #define g 1 #define DP 4 #define minus Dig[10] #define grad Dig[11] #define probel Dig[12]
#define d 8 //Меняем эти числа для другого индикатора #define e 16
Есть такой вариант: flash char digits[] = { //масив с цифрами 0b00000011, //0 0b10011111, //1
В первом варианте - переведите число 8 из десятичной в двоичную системы с помощью встроенного в винду калькулятора в режиме Программист. Получите в двоичной системе 00001000. То есть, 1 будет зажигать сегмент d индикатора. Расположение сегментов индикатора есть в его даташите или в гуглопоиске. Подключение сегментов индикатора к выводам микроконтроллера показано на схеме, по которой вы работаете. Второй вариант цифр в двоичной системе показывает сразу, какие сегменты индикатора будут включены для отображения на нем цифр 0, 1... В зависимости от типа индикатора и его подключения, сегменты могут зажигаться как лог.единицей, так и лог.нулем. Второй вариант как раз этим принципиально и отличается от первого. Во втором варианте сегменты зажигаются лог.нулем на выходах.
_________________ Подпись убрал вместе с автором. aen
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Зарегистрирован: Вт сен 11, 2012 20:21:37 Сообщений: 211
Рейтинг сообщения:0
[/quote]В первом варианте - переведите число 8 из десятичной в двоичную системы с помощью встроенного в винду калькулятора в режиме Программист. Получите в двоичной системе 00001000. То есть, 1 будет зажигать сегмент d индикатора. [/quote] Я тоже так думал, но не сходится у меня. Для сегмента d, согласен, совпадает. Для других сегментов нет.
Эти цифры откуда: #define minus Dig[10] #define grad Dig[11] #define probel Dig[12]
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Для других сегментов переделайте так, чтобы совпадало. Обратно преобразуйте из двоичной в десятичную. #define minus Dig[10] - это присвоение имени minus для элемента массива Dig с индексом 10. Тот массив содержит значение для зажигания сегментов индикатора
_________________ Подпись убрал вместе с автором. aen
Найдите данные массива Dig, в нем найдите 11-й по счету элемент (индексы считаются с 0, поэтому элемент с индексом 10 будет в списке массива 11-м по счету). Точно так же и с Dig[11], Dig[12]. Вообще, вам очень следует подробнее изучить основы языка Си.
_________________ Подпись убрал вместе с автором. aen
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения