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

 
 
> Прерывание от таймера в AT91SAM7X256
ZAA
сообщение May 22 2008, 05:35
Сообщение #1


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

Группа: Участник
Сообщений: 141
Регистрация: 10-02-08
Из: Екб
Пользователь №: 34 906



Используем FreeRTOS. ВОзникла необходимость использования таймера. Вроде просто так таймер запускается и работает, а вот прерывания не обрабатывает. Я подозреваю, что функцию обработки прерывания нельзя объявлять, как обычную функцию. Наверное, надо прописывать ещё вектор прерывания от таймера где-то там. В том и проблема, что не очень хорошо разбираюсь во всяких там секциях памяти, размещении векторов и т. д (по крайней мере в этом контроллере). Как бы это попроще организовать??? help.gif
ТЕкст (кстати стандартный) приведен ниже:
//ф-ия обработки прерывания
void timer1_c_irq_handler(void)
{
AT91PS_TC TC_pt = AT91C_BASE_TC1;
unsigned int dummy;
//* Acknowledge interrupt status
dummy = TC_pt->TC_SR;
//* Suppress warning variable "dummy" was set but never used
dummy = dummy;
count_timer0_interrupt++;
vParTestToggleLED( 2 );
}

void AT91F_TC_Open ( AT91PS_TC TC_pt, unsigned int Mode, unsigned int TimerId)
{
unsigned int dummy;
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1<< TimerId ) ;
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_TC1);
TC_pt->TC_CCR = AT91C_TC_CLKDIS ;
TC_pt->TC_IDR = 0xFFFFFFFF ;

dummy = TC_pt->TC_SR;

TC_pt->TC_CMR = Mode ;

TC_pt->TC_CCR = AT91C_TC_CLKEN ;
}

void timer_init ( void )
{
unsigned int oldHandler;
unsigned int mask ;
AT91S_AIC *pAIC = AT91C_BASE_AIC;
AT91S_TC *pTMR = AT91C_BASE_TC1;

//init the timer interrupt counter
count_timer0_interrupt=0;
count_timer1_interrupt=0;

//* Open timer1
AT91F_TC_Open(AT91C_BASE_TC1,TC_CLKS_MCK128,AT91C_ID_TC1);

//* Open Timer 1 interrupt
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_TC1, TIMER1_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, timer1_c_irq_handler);
AT91C_BASE_TC1->TC_IER = AT91C_TC_CPCS; // IRQ enable CPC
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_TC1);

//* Start timer1
//AT91C_BASE_TC1->TC_CCR = AT91C_TC_SWTRG ;

}

P.S. Знаю, что подобные посты уже были, но хотелось бы ещё раз остановиться на данной проблеме! Спасибо заранее за ответы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение May 22 2008, 05:40
Сообщение #2


Гуру
******

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



Цитата(ZAA @ May 22 2008, 09:35) *
Я подозреваю, что функцию обработки прерывания нельзя объявлять, как обычную функцию.

Нельзя. Как правильно объявить прерывание ищите в документации на компилятор.

Цитата(ZAA @ May 22 2008, 09:35) *
P.S. Знаю, что подобные посты уже были, но хотелось бы ещё раз остановиться на данной проблеме! Спасибо заранее за ответы.

Были уже сотню раз. Пользуйтесь поиском.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ZAA   Прерывание от таймера в AT91SAM7X256   May 22 2008, 05:35
|- - _4afc_   Цитата(aaarrr @ May 22 2008, 09:40) Нельз...   May 22 2008, 07:06
|- - aaarrr   Цитата(_4afc_ @ May 22 2008, 11:06) Обраб...   May 22 2008, 07:29
- - ZAA   НУ вот, ничего конкретного... а ведь хотя бы один...   May 22 2008, 08:41
- - aaarrr   Чтобы получить маааленький совет, укажите: 1. Како...   May 22 2008, 09:00
|- - ZAA   Цитата(aaarrr @ May 22 2008, 12:00) Чтобы...   May 22 2008, 13:24
|- - sla000   Цитата(ZAA @ May 22 2008, 19:24) Я делаю ...   May 23 2008, 03:08
|- - ZAA   Цитата(sla000 @ May 23 2008, 06:08) Тяжел...   May 23 2008, 05:10
|- - sla000   Цитата(ZAA @ May 23 2008, 11:10) Надо сек...   May 23 2008, 05:36
|- - ZAA   Цитата(sla000 @ May 23 2008, 08:36) Нет, ...   May 24 2008, 07:34
|- - ZAA   Цитата(sla000 @ May 23 2008, 08:36) Нет, ...   May 24 2008, 18:58
|- - KolyanV   Цитата(ZAA @ May 24 2008, 21:58) В чем ко...   May 24 2008, 20:35
|- - aaarrr   Цитата(ZAA @ May 24 2008, 22:58) AT91F_TC...   May 24 2008, 21:30
- - ZAA   Цитата(aaarrr @ May 25 2008, 00:30) Timer...   May 25 2008, 07:10
|- - aaarrr   Цитата(ZAA @ May 25 2008, 11:10) У меня н...   May 25 2008, 10:12
|- - ZAA   Цитата(aaarrr @ May 25 2008, 13:12) А vTa...   May 25 2008, 13:39
- - aaarrr   Нет, отдельный task создавать не нужно. Вы шедулер...   May 25 2008, 15:38
|- - ZAA   Цитата(aaarrr @ May 25 2008, 18:38) Нет, ...   May 25 2008, 16:40
- - aaarrr   CPCSTOP не забыли убрать?   May 25 2008, 16:43
|- - ZAA   Цитата(aaarrr @ May 25 2008, 19:43) CPCST...   May 25 2008, 18:26
|- - aaarrr   Цитата(ZAA @ May 25 2008, 22:26) AT91C_BA...   May 26 2008, 02:56
|- - ZAA   Цитата(aaarrr @ May 26 2008, 05:56) Почем...   May 26 2008, 07:05
|- - ZAA   Цитата(aaarrr @ May 26 2008, 05:56) Почем...   May 26 2008, 13:00
- - aaarrr   И Вам спасибо за отсутствие AT91F_ в исходниках   May 26 2008, 13:03
|- - ZAA   Цитата(aaarrr @ May 26 2008, 16:03) И Вам...   May 27 2008, 17:31
|- - aaarrr   Цитата(ZAA @ May 27 2008, 21:31) Для реал...   May 27 2008, 18:38
|- - ZAA   Цитата(aaarrr @ May 27 2008, 21:38) Можно...   May 28 2008, 03:50
|- - ZAA   Цитата(aaarrr @ May 27 2008, 21:38) Разни...   May 28 2008, 17:40
|- - aaarrr   Цитата(ZAA @ May 28 2008, 21:40) 1) Можно...   May 28 2008, 18:21
|- - ZAA   Цитата(aaarrr @ May 28 2008, 21:21) Спас...   May 28 2008, 18:23
|- - ZAA   Цитата(aaarrr @ May 28 2008, 21:21) ... В...   May 28 2008, 20:51
|- - aaarrr   Цитата(ZAA @ May 29 2008, 00:51) Если раз...   May 29 2008, 03:06
|- - ZAA   Цитата(aaarrr @ May 29 2008, 06:06) Остан...   May 29 2008, 03:11
|- - aaarrr   Цитата(ZAA @ May 29 2008, 07:11) Да ещё и...   May 29 2008, 04:56
|- - ZAA   Цитата(aaarrr @ May 29 2008, 07:56) Ну, э...   May 29 2008, 07:46
- - aaarrr   Так добавьте какую-нибудь задачу, которая просто б...   May 29 2008, 07:50
- - ZAA   Цитата(aaarrr @ May 29 2008, 10:50) Так д...   May 29 2008, 10:01
- - ZAA   Цитата(aaarrr @ May 29 2008, 10:50) Так д...   Jun 13 2008, 05:15


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

 


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


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