Обсуждаем контроллеры компании Atmel.
Ответить

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 19:58:39

Как всё это женить на с++ ?? Хочу я сделать проект - замер ёмкости АКБ , то есть мне надо раз в секунду один (или нескольколько каналов опросить АЦП тока и напряжения), расчитать время , и вывести на динамическую индикацию 8-ми 7-ми сегментных индикаторов ... Как это сделать?

А хоть примерная схема есть?

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 20:37:23

Есть и схема, и печатные платы, и готовое устройство, только без подсчёта ёмкости (проблема считать время, и отображать динамическую индикацию, и считывать АЦП всё вместе). Вот схема .

Добавлено after 7 minutes 22 seconds:
Re: Динамическая индикация, плюс таймер времени плюс АЦП как?
Ну там ещё кнопка будет на один свободный пин, для переключения отображения режимов -"ток , напряжение" и "время , ёмкость".
Вложения
схема.png
(33.08 KiB) Скачиваний: 56

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 20:51:07

Понятно,я сделал свой но у меня только 4 сегмента,их мне хватает
На Timer0 индикация
На Timer1 счет секундных импульсов,измерение напряжения на нагрузочном резисторе, расчет тока и емкости
В основном цикле сравнение напряжения на аккумуляторе и когда оно будет 3,3 вольта нагрузка отключается
Ну там еще TP4056(вкл/выкл заряда) и т д

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:01:49

Не пойму как можно работать с прерываниями от переполнения двух ( и более ) таймеров ... Динамическая индикация ещё не закончилась, а тут хренакс пришло время "увеличивать время на десятую секунды" второй таймер переполнился причем временной , более важный.

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:06:48

Я бы объяснил как сам понимаю но местные спецы все равно докопаются что я не прав,обосрут вдоль и поперек и уйдут,такая специфика месных сторожил-прийти,обосрать,ничего путного по теме не сказать и уйти

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:12:38

А вот ещё далее , в прерывании которое считает время, нужно установить флаги нажатия на ( к примеру ) 3 кнопки , посчитать это время всех трёх кнопок, и установить флаг отжимания каждой чё бы расчитать время нажатия каждой из них, и в основном цикле уже зная время нажатия на каждую запустить соответствующие функции. А динамическая индикация ждёт !!

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:14:00

Динамическая индикация не заканчивается,просто гасим разряд который горел,включаем/выключаем нужные сегменты следующего разряда,включаем след разряд и выходим из обработчика прерывания,нужный разряд будет гореть независимо от других таймеров (при условии что управление индикации больше нигде в программе не используется)

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:14:56

АЦП сходит с ума от куевой хучи всяких прерываний и врёт как троцкий ...

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:18:09

У меня чтение ацп сидит в обработчике прерывания таймера1 и работает как часы,если бы чтение ацп сидело в основной программе то да-начинает врать

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:21:51

А вот ещё далее , в прерывании которое считает время, нужно установить флаги нажатия на ( к примеру ) 3 кнопки , посчитать это время всех трёх кнопок, и установить флаг отжимания каждой...

Не надо так делать. В прерывании просто увеличиваете глобальную переменную на 1, а в основном цикле реагируете на это изменение, уменьшая переменную на 1 пока она не станет равна нулю.

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:36:12

Чуть нижу есть тема АЦП вместо ... таймера
АЦП имеет собственное прерывание, регистр ADCW АЦП буферизированный,
это прерывание срабатывает когда готов результат преобразования,
и на этом же прерывании делаем динамическую индикацию.
Если вкратце: на частоте 16МГц прерывание АЦП 104мкс, сканируем 2 канала, за 0,2сек ложем 1024 отсчета на каждый канал,
пропускаем каждое 16 прерывание для динамической индикации, на 8 разрядов частота обновления получается примерно 67Гц.

Демонстрационный код нужен или сами здесь, на форуме, покопаетесь?

Re: Динамическая индикация, плюс таймер времени плюс АЦП как

Вт дек 07, 2021 21:55:17

Что-то новое,прерывание ацп я еще не пробовал,но идея хорошая

Получилось! тактовая атмега8 8 МГц,предделитель ацп 128,прерывание наступает каждые 208 мксек (13 тактов )
Ответить