lightelf (01.11.2012 13:43, просмотров: 2579)
STM32F103C6, проблема с TIM1 и EXTI. Таймер 1 использую для генерации ШИМ, противофазные выходы не использую. Нога PB13 (которая может иметь альтернативную функцию TIM1_CH1N) используется как вход GPIO с прерыванием по изменению. Получаю от EXTI прерывание в момент переключения ШИМ на канале 1 таймера. Ощущение, что выход сигнала TIM1_CH1N все равно как-то пролезает на вход EXTI. Кто-нибудь с таким сталкивался?
Инициализирую TIM1 так:
// настраиваем таймер 1
TIM1->PSC = 5; // делим на 6
TIM1->ARR = 255; // считаем до 255
TIM1->RCR = 2;
TIM1->CR1 = 4;
TIM1->CR2 = TIM_CR2_OIS1N | TIM_CR2_OIS2N | TIM_CR2_OIS3N;
// настроим каналы
TIM1->CCR1 = led_state[0];
TIM1->CCR2 = led_state[1];
TIM1->CCR3 = led_state[2];
TIM1->CCMR1 = 0x6060; // каналы 1,2 и 3 в режиме PWM1
TIM1->CCMR2 = 0x0060;
TIM1->CCER = TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E;
TIM1->SMCR = 0;
TIM1->EGR = TIM_EGR_UG;
TIM1->DIER = 0;
TIM1->BDTR = TIM_BDTR_MOE;// | TIM_BDTR_AOE;
// включаем таймер
TIM1->CR1 |= TIM_CR1_ARPE | TIM_CR1_CEN;
Не надо делать мне как лучше, оставьте мне как хорошо