 lightelf (01.11.2012 13:43, просмотров: 2738)
 lightelf (01.11.2012 13:43, просмотров: 2738)
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;
Не надо делать мне как лучше, оставьте мне как хорошо