Перейти к содержанию
    

AT91SAM7S64 Real Time Clock

Полдня убил на експериментов и так не успел сконфигурироват перервание из него. В документации что то пропустили написат.

 

Помогите с example или обясните step-by-step как сконфигурироват.

Буду очен признателен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 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;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...