Электроника в автомобиле | Подсветка днища автомобиля ночью. |
|
---|---|---|
Gregory: Ничего подобного. Имелась в виду разница между TMR0 и TMR1. В результате, не смотря на одинаковую разрядность (оба таймера 8-и разрядные), TMR1 позволит выбрать коэффициент счёта более точно. Использовать же для отсчёта паузы регистры МК - значит, заставить его постоянно отрабатывать счёт, а любое вмешательство, типа опрос кнопок, сразу изменит длительность паузы. А так, получается, что пока таймер считает, программа может вообще стоять. Но я заставил её опрашивать кнопки. У Zandy опрос кнопок происходил после прерывания. Мне показалось это не очень удобным, и я сделал по другому. У меня два процесса (отработка паузы и опрос кнопок) происходят одновременно и параллельно. |
|
|
DWD: У Zandy опрос кнопок происходил после прерывания. Мне показалось это не очень удобным, и я сделал по другому. DWD, опрос кнопок происходил не после прерывания, а в процессе прерываний. Это был единственный интересный момент во всей программе, повышающий надежность защиты от дребезга Может вы не совсем поняли алгоритм? Выбирая низкую тактовую частоту 32 кГц вы все-таки немножко себя "загоняете в угол" в смысле многообразия различных вариантов алгоритмов построения программы. Надо четко отслеживать времена выполнения каждой команды. При высокой тактовой (4 МГц) и низкой выходной частотах можно пренебречь временем выполнения десятка - другого команд (+/- 10 мкс). Табличный способ задания вариантов выходного состояния портов, по-моему здесь несколько сложноват и не совсем оправдан, ведь эффекты-то простейшие. Но самое главное, что вы не стали повторять программу, а решили делать ее сами, своими силами. Это очень отрадно! Именно в этом и суть неоспоримой пользы, такой казалось бы, совсем никчемной игрушки. |
|
|
DWD: |
|
|
Zandy: DWD, опрос кнопок происходил не после прерывания, а в процессе прерываний. Это понятно. Я имел в виду после появления прерывания, как события. Zandy: Может вы не совсем поняли алгоритм? Да. И это было сильным стимулом написать прогу самому и всё сначала... Однако, меня напрягало то, что не мог ни как "ухватить" главную суть, а Вы не рассказывали... Но мне ещё рано "крутить финты" при программировании МК. Тут бы основы освоить, так сказать - классику. Вторая причина - желание получить нижнее значение частоты 1Гц. Zandy: Выбирая низкую тактовую частоту 32 кГц вы все-таки немножко себя "загоняете в угол"... Надо четко отслеживать времена выполнения каждой команды. Согласен. Поправку придётся делать. Добавление нового эффекта, практически, означает добавление новой таблицы комбинаций состояния портов. Прога, практически, написана. Остались эффекты. А с учётом большой оставшейся памяти (использовано пока 334 из 1714), можно организовать таблицы с довольно сложным алгоритмом переключения, не доступным при "математическом" способе вычисления. Например, все эффекты по кругу... Так что, как мне кажется, табличный способ в данном случае будет, наоборот, проще. Zandy: Но самое главное, что вы не стали повторять программу, а решили делать ее сами, своими силами... Именно в этом и суть неоспоримой пользы... Согласен. В своих глазах я "вырос". |
|
|
DWD: Вторая причина - желание получить нижнее значение частоты 1Гц. DWD: Но мне ещё рано "крутить финты" при программировании МК. Тут бы основы освоить, так сказать - классику. |
|
|
Zandy: Конечно неправильно поняли. Точно, у Вас же пауза организована отдельным счётчиком на регистрах!.. Забыл. Zandy: Какие финты? Все это мы "проходили" в ветке форума ликбез по пикам. Да, я ликбез не прошёл даже на двойку... Zandy: При высокой тактовой (4 МГц) и низкой выходной частотах можно пренебречь временем выполнения десятка - другого команд (+/- 10 мкс). Только что специально сравнил, на сколько отличается реальная частота от выставленной при отработке разных эффектов. Видно, что отличие есть только на самой высокой частоте, но такой разницей можно пренебречь. Думаю, что длина кода для эффектов мало будет влиять на погрешность отработки пауз, что и видно из таблицы. Пока руки "не дошли" исправить. Частоту эффекта можно отабатывать один раз при первом вызове данного эффекта, а у меня оно обновляется при каждом прерывании. Сейчас мне приходится корректировать коэффициенты для таймера, прибавляя к его значению число 25. Выиграв десяток команд, можно будет и прибавку уменьшить до 15. Так и подберу... В крайнем случае, если захочется ну очень точно выдерживать время, то уже в полностью написанной проге подберу индивидуально величину "прибавки". |
|
|
Уже начал задумываться над способом реализации драйверов светодиодов. Всего светодиодв - 22 штуки, включенных по 2 параллельно. Большинство подходящих мс драйверов (в одном корпусе 16 выходов) расчитаны на подключение светодиодов к плюсу питания. А мне нужно, что бы все светодиоды сидели одним концом на корпусе - минусе. Желательно, драйвер с параллельной загрузкой, что бы код не переписывать, а то читаю - все выполнены как регистры с последовательной загрузкой. С параллельной есть? Кто подскажет, есть ли такие микросхемы, или самому лепить из дискретных элементов? Хочу, что бы драйвер был в виде источника тока, что бы при замыкании выхода не было перегрузки. Проводка будет достаточно длинная - пару метров. Сколько думаю - всё сильнее склоняюсь к простейшему варианту, в котором каждый светодиод подключен к отдельному источнику тока на 2-х транзисторах или транзисторе и диодах. Плюс, ещё два резистора - один подключается к выходу МК, а другой является токозадающим. В общем, классическая схема источника тока. Кто ещё что подскажет или посоветует? |
|
|
DWD: Сколько думаю - всё сильнее склоняюсь к простейшему варианту, в котором каждый светодиод подключен к отдельному источнику тока на 2-х транзисторах или транзисторе и диодах. Плюс, ещё два резистора - один подключается к выходу МК, а другой является токозадающим. В общем, классическая схема источника тока. Я бы применил обыкновенные одиночные тр-ры pnp или специальные ключевые с внутренними резисторами, если не хотите внешние резисторы вешать. Ток ограничивать резистором в коллекторе, последовательно со светодиодом (причем с каждым из двух, они ведь параллельно включены) - какой еще там прецизионный источник тока для питания с/д? По-моему самое простое решение! |
|
|
Если транзисторы p-n-p и управление от МК, значит, питание "драйверов" должно быть такое же, как и у МК - 5В. Теперь, предствим, что где-то коротнуло - светодиод "пробился" или замкнули его... Если же добавить к уже установленному транзистору и резисторам ещё один транзистор или два диода (или один стабилитрон), то получим источник тока, выдающий 40мА не зависимо от того есть замыкание в цепи светодиодов или нет. Но я хотел поставить транзисторы n-p-n, и питать этот "драйвер" от импульсного стабилизатора напряжением 4В. Уже при таком значении стабилизатор тока работает нормально. Просто, для уменьшения размеров устройства хотелось бы использовать "монолитный" драйвер, если такой найдётся... |
|
|
В соседнем разделе прям по теме ссылка. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |