Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM7S64 Real Time Clock
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Nikola Kirov
Полдня убил на експериментов и так не успел сконфигурироват перервание из него. В документации что то пропустили написат.

Помогите с example или обясните step-by-step как сконфигурироват.
Буду очен признателен.
VladislavS
На AT91RM9200 это вынлядит так. Думаю все основные моменты на AT91SAM7S64 будут теми же.
Код
  //Настройка AIC
  AIC_IDCR=0xFFFFFFFF; //Запретим все прерывания
  for(unsigned int i=0; i<8; i++) AIC_EOICR=0;  
  AIC_IECR=(1<<1); //Разрешим прерывания Source 1
  ST_IER=(1<<2);  //Разрешить прерывания RTTINC
  AIC_SVR1=(int) &Interrupt_Source1;    
  __enable_interrupt();
  

void Interrupt_Source1(void)
{
  int st_sr=ST_SR;
  if(st_sr&0x00000004)
  { //Прерывание RTC (1 раз в секунду)
  
  }
}
  
  
#pragma vector=0x18
__irq __arm void interrupt_handler(void)
{
  void (*interrupt_task)();
  unsigned int vector;
  vector = AIC_IVR; // Get interrupt vector.
  interrupt_task = (void(*)())vector;
  AIC_IVR = 0; // Acknowledge interrupt in VIC.
  (*interrupt_task)(); // Execute the task associated with this interrupt.
  AIC_EOICR=0;
  return;
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.