首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32F4脉宽调制斜坡

STM32F4脉宽调制斜坡
EN

Stack Overflow用户
提问于 2015-01-12 23:57:30
回答 1查看 883关注 0票数 0

我正在做一个项目,我希望将pwm占空比从0提高到50%。我的周期是16000次计数或1ms (16 My默认计时器计数)。由于某些原因,它不是在每个周期更新占空比,而是更新得慢得多。我想知道是不是因为我在计时器中断中计算新的占空比?下面是我使用的代码:

代码语言:javascript
复制
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);
        }
    }
 }
EN

回答 1

Stack Overflow用户

发布于 2015-01-13 05:29:07

天哪,看起来我是在犯傻--计时器正在做我想让它做的事情--它只需要8秒,周期为1ms,就可以达到500us的脉冲宽度,每个周期增加62.5 is。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27905953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档