|
Хочется программно инициировать прерывание, Но не INT0/INT1, как бы погламурнее |
|
|
|
May 20 2008, 11:52
|

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

|
Тут задача возникла следующего характера. Как бы инициировать прерывание программным путем? Самый простой способ - использовать INT0, например, и сконфигурировать прерывание по изменению состояния ноги (нога на вывод), в результате - достаточно шевельнуть ножкой (изменив ее, скажем OUT'ом в PINx) и флаг прерывания установится; соответственно, когда будет разрешено прерывание INT0 - оно и произойдет. Но, к сожалению, INT0 и INT1 заняты, надо изобретать что-то другое. Вот мысль появилась использовать прерывание от компаратора, причем следующим образом: Компаратор штатно выключен (он не нужен в проекте), для установки флага прерывания от него использовать последовательность Код ACSR=(1<<ACD)|(1<<ACIS1)|(1<<ACIS0); //Comparator Interrupt on Rising Output Edge. ACSR=(1<<ACD)|(1<<ACIS1); //Comparator Interrupt on Falling Output Edge. Т.е. переключить туда-сюда "по фронту/по спаду". На идею натолкнула фраза Цитата When changing the ACIS1/ACIS0 bits, the Analog Comparator Interrupt must be disabled by clearing its Interrupt Enable bit in the ACSR Register. Otherwise an interrupt can occur when the bits are changed. в даташите. К сожалению, сейчас негде попробовать этот чит. Посему пара вопросов: 1. Может кто делал такое и уже знает результат? 2. Может у кого есть под рукой макеточка, проверить бы? 3. А может кто гламурнее способ знает?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
 |
Ответов
|
May 20 2008, 20:31
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(prottoss @ May 20 2008, 15:01)  Как раз от компаратора в scmRTOS и используют, но вроде как внешне что то к выводу компаратора припаивать надо... Лучше обратиться к первоисточнику. К сожалению адреса не знаю - но по моему в форуме про RTOS тема травой не заростает. Ничего припаивать не надо. Но одна нога занята. Один из входов компаратора ставится на внутренний ИОН, второй остаётся на ножке, ножка ставится на выход. Этого достаточно. В порт avr-gcc в примеры внесён ещё и другой вариант - используется прерывание SPM_ready (считается, что не используется при работе приложения, а не загрузчика). При необходимости вызвать прерывание поднимается бит SPMIE, в обработчике он сбрасывается. Ничего плохого в таком варианте не вижу.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
Rst7 Хочется программно инициировать прерывание May 20 2008, 11:52 prottoss Цитата(Rst7 @ May 20 2008, 19:52) Тут зад... May 20 2008, 11:58 VladimirYU Цитата(Rst7 @ May 20 2008, 15:52) Тут зад... May 20 2008, 11:58 Rst7 ЦитатаА почему хочется именно пограммное прерывани... May 20 2008, 12:12 sKWO Цитата(Rst7 @ May 20 2008, 14:52) Тут зад... May 20 2008, 12:16 galjoen Цитата(Rst7 @ May 20 2008, 15:52) Тут зад... May 20 2008, 12:25 Rst7 Цитатаа оно возникает когда пустой регистр данных ... May 20 2008, 12:34 Палыч Не понятно, чем Вам не угодило прерывание от EEPRO... May 20 2008, 13:01 galjoen Цитата(Rst7 @ May 20 2008, 16:34) Мне не ... May 20 2008, 13:39  Палыч Цитата(galjoen @ May 20 2008, 16:39) Чтоб... May 20 2008, 14:14 prottoss Цитата(Rst7 @ May 20 2008, 20:34) Мне не ... May 20 2008, 13:53 Палыч Цитата(Rst7 @ May 20 2008, 14:52) Тут зад... May 20 2008, 12:44 Rst7 ЦитатаКак раз от компаратора в scmRTOS и использую... May 20 2008, 12:52 singlskv Цитата(Rst7 @ May 20 2008, 16:52) Только ... May 20 2008, 13:01 &-rey Цитата(Rst7 @ May 20 2008, 15:52) Ага, пр... May 20 2008, 13:01 defunct Цитата(Rst7 @ May 20 2008, 15:52) Все не ... May 20 2008, 15:03 Rst7 ЦитатаЕсли, память не используете,
Использую.
Кро... May 20 2008, 13:03 Палыч Цитата(Rst7 @ May 20 2008, 16:03) Мне нуж... May 20 2008, 13:09 Rst7 ЦитатаРазрешили прерывание - получили прерывание.
... May 20 2008, 13:15 &-rey так и не понял, нога которая ICP используется ? May 20 2008, 13:16 Rst7 ЦитатаICP используется ?
Занята. Да и дрыгать нож... May 20 2008, 13:24 ILYAUL Цитата(Rst7 @ May 20 2008, 15:52) Тут зад... May 20 2008, 13:31 Rst7 ЦитатаТак вроде с готовностью EEPROM всё хорошо по... May 20 2008, 13:49 galjoen Цитата(Rst7 @ May 20 2008, 17:49) К сожал... May 20 2008, 14:16 defunct Цитата(Rst7 @ May 20 2008, 16:49) Сбрасыв... May 20 2008, 15:11 =GM= Цитата(Rst7 @ May 20 2008, 10:52) Тут зад... May 20 2008, 14:59 SasaVitebsk Я использую от таймера. У меня мега640 - там этих ... May 20 2008, 15:05 SasaVitebsk 2 GM - ты немного задачу не осознал.
Например ... May 20 2008, 15:11 defunct Цитата(SasaVitebsk @ May 20 2008, 18:11) ... May 20 2008, 15:16  galjoen Цитата(defunct @ May 20 2008, 19:16) Не, ... May 20 2008, 15:51   Палыч Цитата(galjoen @ May 20 2008, 18:51) Т.е.... May 20 2008, 16:08    galjoen Цитата(Палыч @ May 20 2008, 20:08) Приори... May 20 2008, 16:52   defunct Цитата(galjoen @ May 20 2008, 18:51) Не. ... May 20 2008, 20:56    singlskv Цитата(defunct @ May 21 2008, 00:56) Насч... May 20 2008, 21:16     defunct Цитата(singlskv @ May 21 2008, 00:11) Ну ... May 20 2008, 21:19      singlskv Цитата(defunct @ May 21 2008, 01:19) Неск... May 20 2008, 21:35       defunct Цитата(singlskv @ May 21 2008, 00:35) Те ... May 20 2008, 23:30        Dog Pawlowa Цитата(defunct @ May 21 2008, 02:30) Ну т... May 21 2008, 05:44      galjoen Цитата(defunct @ May 21 2008, 01:19) Неск... May 20 2008, 21:59 Палыч Цитата(SasaVitebsk @ May 20 2008, 18:11) ... May 20 2008, 15:19  SasaVitebsk Цитата(Палыч @ May 20 2008, 18:19) Почему... May 20 2008, 15:35   Палыч Цитата(SasaVitebsk @ May 20 2008, 18:35) ... May 20 2008, 15:41 _Pasha Привет, телепаты
1. Какая у Вас мега в проекте?
... May 20 2008, 16:04 SasaVitebsk Вот уж не знаю как вам объяснить.
Ещё раз... May 20 2008, 16:12 Палыч Цитата(SasaVitebsk @ May 20 2008, 19:12) ... May 20 2008, 16:34 Rst7 Давайте я попробую все-таки подробностей добавить.... May 20 2008, 16:29 singlskv Не знаю точно поможет ли это Вам в конкретной зада... May 20 2008, 18:19 singlskv Если свободен пин nSS(SPI SlaveSelect) я бы еще по... May 20 2008, 20:50 ReAl Кстати, я очень обижен на атмел в том, что битики ... May 20 2008, 21:03 Дон Амброзио У меня для "быстрых" потоков, которые до... May 21 2008, 05:13 Rst7 Ну вообщем, проверил на железе - не приводит к уст... May 21 2008, 05:48 galjoen Цитата(Rst7 @ May 21 2008, 09:48) Код#pra... May 21 2008, 06:58 sKWO Цитата(Rst7 @ May 21 2008, 08:48) В принц... May 21 2008, 08:21 SasaVitebsk В принципе предложений накидали. Обсуждать подх... May 21 2008, 07:15 Dog Pawlowa Цитата(SasaVitebsk @ May 21 2008, 10:15) ... May 21 2008, 07:23 Rst7 ЦитатаЗато прерывания от таймера вообще возникать ... May 21 2008, 07:37 galjoen М.б. конечно я уже надоел своим занудством, но...
... May 21 2008, 09:30 Rst7 ЦитатаМне вот это всё не нравится (некрасивым каже... May 21 2008, 09:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|