2015-01-12 80 views
0

我正在開發一個項目,我希望將pwm佔空比從0增加到50%。我的週期是16000計數或1ms(16MHz默認計時器計數)。出於某種原因,不是每個週期更新工作週期,而是更新速度慢得多。我想知道是不是因爲我正在計算定時器中斷內的新佔空比?下面是我使用的是什麼:STM32F4 PWM斜坡

void TIM4_IRQHandler() 
{ 
if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) 
{ 
    TIM_ClearITPendingBit(TIM4, TIM_IT_Update); 

    if (loop <= 8000) { 
     TIM4 -> CCR1 = CCR_i; 
     uint16_t y = CCR_i; 
     CCR_i = y + 1; 
     int x = loop; 
     loop = x + 1; 
    } 
    if (loop == 8001) { 
     TIM4 -> CCR1 = 0; 
     uint16_t x = CCR_i; 
     CCR_i = x + 1; 
     int c = loop; 
     loop = c + 1; 
    } 

    if (loop > 8001) { 

     int t; 
     for(t = 0; t < 10; t++){ 
      // wait 
     } 

     GPIO_SetBits(GPIOG, GPIO_Pin_8); 
     //Stop2(); 
     TIM_ITConfig(TIM4, TIM_IT_Update, DISABLE); 
     NVIC_DisableIRQ(TIM4_IRQn); 
     } 
    } 
} 

回答

0

爆炸,它看起來像我是傻 - 定時器做什麼,我希望它 - 它只是需要8秒的時間1ms的斜坡,以脈寬500us,每週增加62.5ns。