Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

еще одна муля у SAM7. Таймер / прерывания / PMC

Отправлено ы (213.79.108.215) 15 февраля 2010, г. 15:25


надо периодически включать таймер для семплирования на 76800 - посемплировать секунды 3 и отключить.


static void __start_sample_timer(void) {
vu32_t w;

w = SAM256_TMR->SR1; // clear int
// go!
SAM256_PMC->PCER = TC1_PH_ID ; // enable tmr1 **********
SAM256_TMR->IER1 = (1ul << 4); //
SAM256_TMR->CCR1 = 1 ; // clk en
SAM256_TMR->CCR1 = 4 ; // clk en + go!
}


static void __stop_sample_timer(void) {
vu32_t w;
SAM256_TMR->CCR1 = 2 ; // clk dis
SAM256_PMC->PCDR = TC1_PH_ID ; // disble tmr1
SAM256_TMR->IDR1 = (1ul << 4); //
w = SAM256_TMR->SR1; // clear int
}

и IRQ
__irq void SoftUart_Irq(void) {

dw = SAM256_TMR->SR1; //clr RC1 cmp int
//////////
TOGGLE_PIN()
.........................
SAM256_AIC->EOICR = 0; /* End interrupt */

}




ппосле нескольких пар вызовов проц навечно уходить в IRQ - выходит и обратно в него.

если в __start_sample_timer строчку SAM256_PMC->PCER = TC1_PH_ID
вынести в начало, а в __stop_sample_timer строчку SAM256_PMC->PCDR = TC1_PH_ID в конец, то все нормально.

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

Такая вот засада по невнимательности могет быть...


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 69:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru