0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
|
|
1 | |
Странное поведение флагов таймера.15.11.2013, 03:12. Показов 4221. Ответов 0
Метки нет Все метки)
(
Работаю на STM32VLDyscovery (STM32F100RB)
Потребовалось мне получить от таймера два прерывания. Одно по переполнению, одно по совпадению в первом канале (CCR1). Все настроил на таймере TIM4, прерывания происходят, но я не могу определить какое из них произошло... После возникновения прерывания смотрю в регистр статуса TIM4->SR;, а там 0x1f - 11111b. Что за мистика? Должно же ведь быть 00001b при возникновении переполнения, или 00010b при совпадении. Ничего не понимаю. Закомментировал строки разрешающие прерывание по совпадению и загружающие регистр TIM4->CCR1. Всеравно в прерывании по переполнению регистр статуса содержит 11111b. Проверял содержимое регистра статуса под отладчиком в Кокосе. В чем же дело? Что я делаю не так? Вот код: Код
#include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" int main() { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); // настройка таймера TIM4->PSC = 24000 - 1; // Настраиваем делитель что таймер тикал 1000 раз в секунду TIM4->ARR = 1000; // Чтоб прерывание случалось 1 раз в секунду //TIM4->CCR1 = 200; // Скважность импульсов. TIM4->DIER |= TIM_DIER_UIE; //разрешаем прерывание от таймера //TIM4->DIER |= TIM_DIER_CC1IE; //разрешаем прерывание по сравнению. TIM4->CR1 |= TIM_CR1_CEN; // Запуск таймера NVIC_EnableIRQ(TIM4_IRQn); //Разрешение TIM4_IRQn прерывания RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN , ENABLE); while(1) { //Программа ничего не делает в пустом цикле } } void TIM4_IRQHomdler(void) { int status,count; count = TIM4->CNT; status = TIM4->SR; TIM4->SR &= ~TIM_SR_UIF; //Сбрасываем флаг UIF //TIM4->SR &= ~(TIM_SR_CC1IF); }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
15.11.2013, 03:12 | |
Ответы с готовыми решениями:
0
Странное поведение таймера Странное поведение FatFs Странное поведение мигалки Keil странное поведение |
15.11.2013, 03:12 | |
Помогаю со студенческими работами здесь
1
Странное поведение МК (STM32F100RBT6B) - подскажите! Странное поведение STM32 VL Discovery Странное поведение USART в stm32f103rb Странное поведение STM32F407VG при прошивке. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |