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

 
 
> Прерывания в AT91SAM7S, Помогите!!!Я в очаянии....
DAPA
сообщение Oct 17 2009, 13:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 4-03-09
Пользователь №: 45 664



1111493779.gif wassat.gif Привет Всем. Помогите, уже несколько дней мучаюсь на д прерыванием IRQ1 в AT91SAM7S256, перепробовал уйму вариантов, увы wassat.gif 1111493779.gif
Вот один из вариантов:

CODE
#include "Board.h"

#define EXT_OC 18432000 // Exetrnal ocilator MAINCK
#define MCK 48054857
//=================================================================
#define IRQ_1 (1<<30)
#define LED_1 (1<<26)
///////////////////////////////////////////////////////////////////
#define IRQ1_INTERRUPT_LEVEL 5

char flag = 0;
char dum;
//обработчик прерывания от IRQ1
void button(void){

AT91F_PIO_SetOutput(AT91C_BASE_PIOA, LED_1);
/*
if( flag ==1 )
{
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, LED_1);
flag = 0;
}
else
{
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, LED_1);
flag = 1;
};
*/
dum = AT91C_BASE_PIOA->PIO_ISR;//разрешить следующее прерывание IRQ1(сброс ВСЕХ прерываний)
dum = dum;
};
//инициализация внешнего прерывания на линии IRQ1
void irq_interrupt_init(void){

AT91F_PIO_CfgInput(AT91C_BASE_PIOA, IRQ_1);
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, IRQ_1, 0);
AT91F_PIO_CfgInputFilter(AT91C_BASE_PIOA, IRQ_1);//включение входного фильтра для линии IRQ1

AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, AT91C_ID_IRQ1 );
AT91C_BASE_AIC->AIC_IDCR = (1<<31);
AT91C_BASE_AIC->AIC_SMR[31] = (0x1<<5)|(0x6);
AT91C_BASE_AIC->AIC_SVR[31] = (unsigned int)button;
AT91C_BASE_AIC->AIC_IECR = (1<<31);
// AT91F_AIC_ConfigureIt(AT91C_BASE_AIC, AT91C_ID_IRQ1, 2, 2, button);
//идентификатор устройства, приоритет, тип чувствительности, указателт на обработчик
// AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_IRQ1);
};

int main( void ){
AT91C_BASE_RSTC->RSTC_RMR = AT91C_RSTC_URSTEN | (0x4<<8) | (unsigned int)(0xA5<<24);

AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, LED_1);

irq_interrupt_init();

for (;;)
{


}
}
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DAPA   Прерывания в AT91SAM7S   Oct 17 2009, 13:12
- - aaarrr   Цитата(DAPA @ Oct 17 2009, 17:12) dum = A...   Oct 17 2009, 15:49
- - DAPA   Прошу прощения, разве глобальные прерывания разреш...   Oct 17 2009, 17:18
|- - aaarrr   Цитата(DAPA @ Oct 17 2009, 21:18) Прошу п...   Oct 17 2009, 18:01
- - DAPA   ЦитатаВектор, на который процессор переходит по си...   Oct 17 2009, 19:01
|- - aaarrr   Цитата(DAPA @ Oct 17 2009, 23:01) Процесс...   Oct 17 2009, 19:12
- - DAPA   ЦитатаНет, разрешаются битом I регистра PSR. В дат...   Oct 17 2009, 19:15
|- - aaarrr   Цитата(DAPA @ Oct 17 2009, 23:15) В даташ...   Oct 17 2009, 19:20
- - DAPA   Я ничего не делал с адресом 0x18, просто в литерат...   Oct 17 2009, 19:43
|- - aaarrr   Цитата(DAPA @ Oct 17 2009, 23:43) Я ничег...   Oct 17 2009, 19:48
- - DAPA   Пардон, а не подскажите как в IAR называется регис...   Oct 17 2009, 20:38
|- - aaarrr   Цитата(DAPA @ Oct 18 2009, 00:38) Пардон,...   Oct 17 2009, 21:04
- - DAPA   Кстати о регистре CPSR, в файле Cstartup.s обнаруж...   Oct 17 2009, 22:20
- - DAPA   Урррррааааааа!!!! Заработало. Всё ...   Oct 18 2009, 15:51
- - DAPA   Прошу прощения, что не по адресу А как закрыть ...   Oct 18 2009, 19:28
- - rezident   Цитата(DAPA @ Oct 19 2009, 01:28) Прошу ...   Oct 19 2009, 01:13


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:58
Рейтинг@Mail.ru


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