переполнение таймера
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
использую контроллер мега16, таймер Т0, необходимо считать тики, но тиков гораздо больше чем впемя переполнения, поэтому я придумал при переполнении тики хранить в отдельной переменной, но вот беда при переполнении в TCNT0 оказывается вместо максимального значения 0, причём вариант прибавлять при переполнении известную разрядность таймера не подходит, нужно именно считать тики
- Реклама
Так всё верно, 255 плюс переполнение = 256 что явно в сетку 8 бит не помещается.
К своей чудесной переменной добавляй 256
Всех с началом учебного года
<- заменить на молоко )
К своей чудесной переменной добавляй 256
Всех с началом учебного года
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
так про добавление 256 это понятно, а если узнать это из какого нить регистра?
Это же тики! Пока вы будете узнавать они уже "утикают". Вы просто не сможете синхронизировать переменную (регистры/память) и счётчик таймера. Переменная всегда будет "отставать".
Решения зависит от задачи.
Без подробностей задачи вам насоветовать могут много.
Решения зависит от задачи.
Без подробностей задачи вам насоветовать могут много.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Т.е. вам нужно посчитать, допустим, 200 тиков, а переполняется таймер за 50?kelod писал(а):необходимо считать тики, но тиков гораздо больше чем впемя переполнения
Спойлер
Если я вас правильно понял, то посмотрите эту тему, должно помочь.- Реклама
При каждом прерывании от таймера к внешнему счетному регистру добавляется 1, но ее вес равен коэффициенту деления таймера.
Т.е. 1*N.
самый примитивный способ прямого подсчета без использования умножения - многобайтовый накопитель, к которому при каждом переполнении таймера прибавляется константа N и в самом конце ещё добавить содержимое самого таймера.
Естественно использовать правила многобайтового сложения (не забывать про СY).

Т.е. 1*N.
самый примитивный способ прямого подсчета без использования умножения - многобайтовый накопитель, к которому при каждом переполнении таймера прибавляется константа N и в самом конце ещё добавить содержимое самого таймера.
Естественно использовать правила многобайтового сложения (не забывать про СY).


