реклама на сайте
подробности

 
 
> Помогите усыпить в прерывании..., камень Mega169
DenisIV
сообщение Mar 4 2009, 00:18
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 11-12-08
Из: Республика Беларусь, г.Минск
Пользователь №: 42 380



Собственно, есть проект на Mega169. Тактовая внутренняя 8М, 2 прерывания:

1. Таймер 1 (~1000Hz) - опрос клавиатуры, индикатора и т.д.
2. Таймер 2 (RTC, кварц32768) - раз в секунду считается время.

вот в 1-м таймере опрашивается датчик внешнего напряжения, его дребезг и т.д. и через некоторое время
необходимо проц усыпить, дабы он не скушал слабенький аккум (~20mah,4.8v) Но просыпаться раз в 1 сек от таймера 2
и, добавив секунду снова уснуть(если питание не появилось)...
Может кто сталкивался с такими задачами?
Собственно интересует правильный процесс перехода в спячку, просыпание и снова спячка...
т.е. необходимо ли разрешить прерывания и не сбрасывать флаг для TMR1 что бы проснулся от TMR2?
но как я понимаю, флаг сбрасывается при входе в прерывание, значит его нужно ручками установить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Mar 4 2009, 04:53
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Особенность TMR2 в асинхронном режиме (169 не щупал, но, думаю, так же, как и в других) - нельзя выйти из обработчика TMR2 сразу (т.е. можно, но тогда нельзя сразу же опять уходить в sleep), должен выполнится один цикл таймера (1/32768 sec).


Я может чегото пропустил, но где Вы это вычитали?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
DenisIV
сообщение Mar 4 2009, 06:24
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 11-12-08
Из: Республика Беларусь, г.Минск
Пользователь №: 42 380



Цитата(Rst7 @ Mar 4 2009, 07:53) *
Я может чегото пропустил, но где Вы это вычитали?

К сожалению из опыта.(Я раньше писал только на асм, там извращался как мог...) А насчёт цикла 1/32768 вы пожалуй правы. Иначе sleep не действует, а сразу выполняется обработчик TMR2 несколько раз... Самое интересное, что я жду пока в регистре ASSR младшие 3 бита будут равны 0, но почему-то это не помогает...
Да, делитель у меня на TMR2 на 128. (счётчик на 256*делитель 128=32768). На осциле вижу импульсы(тест. ножку сделал) примерно 3-4 штуки по 12 микросекунд. это обработка TMR2+sleep. Как бы не получить время 1/32768*128=3.9ms Это будет катастрофа sad.gif

Сообщение отредактировал DenisIV - Mar 4 2009, 06:25
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DenisIV   Помогите усыпить в прерывании...   Mar 4 2009, 00:18
- - rx3apf   Цитата(DenisIV @ Mar 4 2009, 03:18) Собст...   Mar 4 2009, 01:18
|- - DenisIV   Цитата(rx3apf @ Mar 4 2009, 04:18) А кака...   Mar 4 2009, 04:27
|- - xemul   Цитата(DenisIV @ Mar 4 2009, 07:27) Именн...   Mar 4 2009, 06:32
||- - DenisIV   Цитата(xemul @ Mar 4 2009, 09:32) И куда ...   Mar 4 2009, 06:42
||- - xemul   Цитата(DenisIV @ Mar 4 2009, 09:42) Я уже...   Mar 4 2009, 07:22
||- - DenisIV   Цитата(xemul @ Mar 4 2009, 10:22) Я уже п...   Mar 4 2009, 07:46
||- - xemul   Цитата(DenisIV @ Mar 4 2009, 10:46) Как в...   Mar 4 2009, 08:42
|- - rx3apf   Цитата(DenisIV @ Mar 4 2009, 07:27) то вы...   Mar 4 2009, 08:31
|- - lepert   Цитата(DenisIV @ Mar 4 2009, 07:27) Именн...   Mar 4 2009, 08:54
|- - rx3apf   Цитата(Rst7 @ Mar 4 2009, 07:53) Я может ...   Mar 4 2009, 08:23
- - Rst7   ЦитатаК сожалению из опыта. Код в студию. Потому ...   Mar 4 2009, 06:57
|- - DenisIV   Цитата(Rst7 @ Mar 4 2009, 09:57) Код в ст...   Mar 4 2009, 07:12
- - Rst7   ЦитатаВообще-то из даташита. Гм. Действительно. К...   Mar 4 2009, 08:28
- - DenisIV   Зачем всякие фиктивные прерывания? Всё красиво раб...   Mar 4 2009, 14:52
- - galjoen   Цитата(DenisIV @ Mar 4 2009, 17:52) ... В...   Mar 4 2009, 17:28


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 06:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016