да не - неотказались - но там половино темы мерянье что у кого круче...
большое спасибо AVR! с его помощью и получилась такая схема..
а насчет написания = просто наверно там все профессионалы..
и оченьпросто сказать- смотри там примеры - там всё понятно...
а я сильно начинающий - и мне трудно начать написание программы с "0", без всего.
под Микроконтроллеры я особо не программировал - так, подправлял готовые проги, либо заливал уже кем-то написанные..
ассемблер или Си - какая разница? главное - алгоритм, а он одинаков:
1. Настроить таймер, разрешить прерывания от него
2. Завести переменную B1, которая хранит номер разряда индикатора, массив переменных D[] "дисплей" (каждый элемент соответствует изображению на индикаторе)
3. написать обработчик прерывания от таймера, в котором сначала погасить все индикаторы соответствующим выводом в нужный порт, затем сделать B1++ и проверить, не стало ли B1 больше, чем может быть индикаторов. Если стало - обнулить В1. Потом выводим в порт D[B1], т.е. светящиеся сегменты "следующего" индикатора, после чего выводим в порт "зажигания" разряда бит (1<<B1)
4. в основном цикле в массив D[] занести нужные "символы" - см. твой массив bin2bcd - и на индикаторе все засветится
алгоритм примерный, только для того, чтобы ты уловил идею.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
c прерыванием кое что понял...
непонятно во что..
на индикатор вывожу так
PORTD = bin2bcd[m]; // m - это номер элемента массива, которому соответсвует буква или цифра
как записать, на какой индикатор из 3-х выводить в данный момент??
m1sh писал(а):с этим тоже разобрался...
только вот в протеусе на симуляции цыфры носятся как бешеные..
Просто Протеус работает с графикой, и мерцание - нормальное явление.
10 Гц - это частота чего? Мерцания индикатора? Если да - то этого мало. Нужно минимум 60 Гц. Иначе глаз видит мерцание боковым зрением, а это плохо влияет...