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

 
 
> Никак не пойму прерывания...
Shaienn
сообщение Sep 9 2009, 05:00
Сообщение #1


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

Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494



Добрый день. Перечитал кучу всего, но так и не могу добиться результата.

Задача такая:
Запустить PIT, досчитать до чего-нибудь, вылететь в прерывание по флагу PITS.

Код
#include <AT91SAM7S256.H>                       /* AT91SAMT7S64 definitions  */
#include <lib_AT91SAM7S256.h>
/*
* Main Program
*/
int i;

__irq void isrSYS(void)
{
         unsigned int status = AT91C_BASE_SYS->PITC_PIVR;
         if (i==1)
         {
         AT91C_BASE_PIOA->PIO_SODR = i;
         i=0;
         }
         else
         {
         AT91C_BASE_PIOA->PIO_SODR = i;
         i=1;
         }
         AT91C_BASE_AIC->AIC_EOICR = status;
}

int main (void) {
  // Enable the Clock of the PIO
    AT91C_BASE_PIOA->PIO_PER = (1 << AT91C_PIO_PA0);
    AT91C_BASE_PIOA->PIO_OER = 0x0000ffff;
    AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA)| (1 << AT91C_ID_SYS);
    AT91C_BASE_PITC->PITC_PIMR = AT91C_PITC_PITEN|AT91C_PITC_PITIEN|0x000007;
      AT91C_BASE_AIC->AIC_SVR[AT91C_ID_SYS] = (unsigned int)isrSYS;
       AT91C_BASE_AIC->AIC_SMR[AT91C_ID_SYS] =  6;
    AT91C_BASE_AIC->AIC_IECR = (1UL << AT91C_ID_SYS);
    AT91C_BASE_AIC->AIC_IECR |= 2;
    AT91C_BASE_AIC->AIC_IDCR &= ~2;

  // Loop forever
  for (;;)
  
  {
  j++;
  }


}


Стартап - стандартный из keil 3.80
Прикрепленный файл  SAM7.txt ( 14.95 килобайт ) Кол-во скачиваний: 608


Помогите разобраться, вроде бы и все понятно, а затык sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Shaienn
сообщение Sep 9 2009, 15:16
Сообщение #2


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

Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494



Спасибо smile.gif Я, глупень, забыл, что в АРМ обнуление регистра выполняется не новой записью в этот регистр, а через соседний регистр CODR... Раньше кодил на AVR smile.gif

Все работает smile.gif
Go to the top of the page
 
+Quote Post



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

 


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


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