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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> AT91SAM7S новичок
Xeon
сообщение Dec 19 2011, 06:35
Сообщение #1


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Всем доброго времени суток!!! Имеется платка с AT91SAM7S. Подскажите пожалуйста как использовать прерывания или где посмотреть, примеры.
Очень буду признателен!
Go to the top of the page
 
+Quote Post
Lotor
сообщение Dec 19 2011, 06:45
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Вероятнее всего с Вашей платкой примеры и идут.

PS: А вообще гугл или документация к Вашему компилятору в помощь.
PPS: Общие положения: в асм файле на место вектора исключения помещается команда безусловного перехода по адресу AIC_IVR, а обработчики в сишных файлах объявляются с атрибутами __arm __irq (для iar).


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
Xeon
сообщение Dec 19 2011, 06:46
Сообщение #3


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Цитата(Lotor @ Dec 19 2011, 10:45) *
Вероятнее всего с Вашей платкой примеры и идут.


Платку сам делал) поэтому примеров нет)
Go to the top of the page
 
+Quote Post
Lotor
сообщение Dec 19 2011, 06:56
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(Xeon @ Dec 19 2011, 10:46) *
Платку сам делал) поэтому примеров нет)

Но задан на столько общий вопрос, что подойдут примеры от любых других платок с Вашим контроллером.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
Xeon
сообщение Dec 19 2011, 07:00
Сообщение #5


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Цитата(Lotor @ Dec 19 2011, 10:56) *
Но задан на столько общий вопрос, что подойдут примеры от любых других платок с Вашим контроллером.


Буду очень благодарен если дадите ссылочки)

ЗЫ. Использую Keil.

Цитата(Lotor @ Dec 19 2011, 10:45) *
Вероятнее всего с Вашей платкой примеры и идут.

PS: А вообще гугл или документация к Вашему компилятору в помощь.
PPS: Общие положения: в асм файле на место вектора исключения помещается команда безусловного перехода по адресу AIC_IVR, а обработчики в сишных файлах объявляются с атрибутами __arm __irq (для iar).


А каким образом узнать от какой перефирии было прерывание?
Go to the top of the page
 
+Quote Post
Lotor
сообщение Dec 19 2011, 07:09
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(Xeon @ Dec 19 2011, 11:00) *
Буду очень благодарен если дадите ссылочки)

Не серьезно же просить гуглить за себя... sm.gif
Например - http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=3784
Цитата(Xeon @ Dec 19 2011, 11:00) *
А каким образом узнать от какой перефирии было прерывание?

Почитайте в документации на свой контроллер про AIC.
Идея в следующем:
Адреса обработчиков прерываний могут быть сохранены в регистрах AIC_SVR1...AIC_SVR131. В регистре AIC_IVR хранится значение регистра AIC_SVRn, который соответствует текущему прерыванию. Поэтому Вам следует разместить по адресу прерывания ARM переход на AIC_IVR.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
Xeon
сообщение Dec 19 2011, 08:01
Сообщение #7


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Lotor Спасибо!!! rolleyes.gif
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 19 2011, 09:25
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Xeon @ Dec 19 2011, 09:35) *
Всем доброго времени суток!!! Имеется платка с AT91SAM7S. Подскажите пожалуйста как использовать прерывания или где посмотреть, примеры.
Очень буду признателен!


Кейл сам дает целую кучу примеров чуть не для любого МК:

http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=4343
Go to the top of the page
 
+Quote Post
Xeon
сообщение Dec 20 2011, 03:35
Сообщение #9


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Получается что в AT91SAM7S может использоваться 32 источника прерываний одновременно?

Если надо использовать несколько прерываний от одной периферии (например усарта), то когда перейдём по вектору надо смотреть флаги которое из них сработало?

Сообщение отредактировал Xeon - Dec 20 2011, 04:03
Go to the top of the page
 
+Quote Post
Xeon
сообщение Dec 20 2011, 05:56
Сообщение #10


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



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

Сообщение отредактировал Xeon - Dec 20 2011, 05:57
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 20 2011, 06:00
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



посмотрите документацию на контроллер прерываний вашего проца
но уж как минимум сбросить флаг прерывания
Go to the top of the page
 
+Quote Post
Xeon
сообщение Dec 20 2011, 06:02
Сообщение #12


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Цитата(toweroff @ Dec 20 2011, 09:00) *
посмотрите документацию на контроллер прерываний вашего проца
но уж как минимум сбросить флаг прерывания


Т.е. автоматом это не происходит?

Получается что в AT91SAM7S может использоваться 32 источника прерываний одновременно?

Если надо использовать несколько прерываний от одной периферии (например усарта), то когда перейдём по вектору надо смотреть флаги которое из них сработало?

Сообщение отредактировал Xeon - Dec 20 2011, 06:02
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 20 2011, 06:18
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Xeon @ Dec 20 2011, 10:02) *
Т.е. автоматом это не происходит?

читать надо мануал. Вроде как нет, но с атмелем не работал

Цитата(Xeon @ Dec 20 2011, 10:02) *
Получается что в AT91SAM7S может использоваться 32 источника прерываний одновременно?

мало того, так еще и с назначаемыми приоритетами

Цитата(Xeon @ Dec 20 2011, 10:02) *
Если надо использовать несколько прерываний от одной периферии (например усарта), то когда перейдём по вектору надо смотреть флаги которое из них сработало?

конечно
Go to the top of the page
 
+Quote Post
Xeon
сообщение Dec 20 2011, 06:28
Сообщение #14


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

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Спасибо toweroff!
А как правильно в keil делать разделения на .c и .h? Делаю как обычно в .h прототипы в .c описываю сами функции, подключаю в main .h и в итоге ошибка: L6218E Undefine simbol "название функции"...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 20 2011, 06:47
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



выкладывайте... так сложно сказать
Go to the top of the page
 
+Quote Post

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

 


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


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