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

 
 
 
Reply to this topicStart new topic
> Как немедленно вызвать прерывание?, от таймера на AT91SAM7S256
coolibin
сообщение May 27 2009, 11:19
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Интереcует как вызвать прерывание от таймера не дожидаясь выполнения условия прерывания? и возможно ли такое? пока я просто завожу его на короткое время, а потом при срабатывании прерывания перезавожу на необходимое


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 27 2009, 11:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Если "не дожидаясь условий", то можно только сконфигурировать прерывание таймера на работу по фронту и взвести его записью в AIC_ISCR.

Но лучше скажите, для чего это понадобилось, ибо похоже на попытку решить задачу через известное место.
Go to the top of the page
 
+Quote Post
coolibin
сообщение May 27 2009, 11:41
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



По прерыванию от таймера отсылаются импульсы, первый импульс не должен иметь задержки. Эту задачу можно решить на уровне языка программирования, но я думал, если есть возможность немедленного вызова, то почему бы ею не воспользоватся


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
tazik
сообщение May 27 2009, 11:49
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(coolibin @ May 27 2009, 19:41) *
По прерыванию от таймера отсылаются импульсы, первый импульс не должен иметь задержки. Эту задачу можно решить на уровне языка программирования, но я думал, если есть возможность немедленного вызова, то почему бы ею не воспользоватся


Извините, что лезу в "калашный ряд", но по крайней мере в АВРах можно "вручную" установить флаг прерывания.
Что-то вроде: установить_бит(регистр_флагов_прерываний,флаг_прерывания)

В ARM так нельзя?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 27 2009, 11:52
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(tazik @ May 27 2009, 15:49) *
В ARM так нельзя?

ARM ARM'у рознь. Способ для AT91 я указал, но он кривой.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 28 2009, 09:47
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(coolibin @ May 27 2009, 14:41) *
первый импульс не должен иметь задержки.

Перед инициализацией таймера или сразу после нее, вызовите обработчик прерывания таймера вручную.
Вмысле прямо в коде
...
Timer_ISR();

Цитата
Как немедленно вызвать прерывание?

также как и любую другую функцию
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 28 2009, 09:57
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ May 28 2009, 13:47) *
Вмысле прямо в коде
...
Timer_ISR();

Если только он не __irq Timer_ISR();
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 28 2009, 10:57
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Вот ё. Да просто выполните нужный код. Без всяких заморочек. Чего экономим?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 6th July 2025 - 09:52
Рейтинг@Mail.ru


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