你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

比较模式输出不同相位的PWM 如何改变占空比

[复制链接]
斯普朗特 提问时间:2015-6-6 16:47 /
我通过比较的翻转模式,输出了不同相位的PWM  靠的的CNT=CCR1,然后怎么改占空比呢?  因为在翻转的时候会产生一个中断,我准备在中断里改 但是没能成功
中断里是这么写的
void TIM4_IRQHandler(void)
{   
//  
  if(TIM_GetITStatus(TIM4,TIM_IT_CC1)!=RESET)
        {

//                 printf("½øÈëÖжÏ1\n");       
                if(temp==0)
                {
                    TIM4->CCR1=7200;
                          temp=1;
                }
                else
                {
                          TIM4->CCR1=2400;
                          temp=0;
                }
        }


我也看了下网上他们说不能预装载 不然CCR1是不会变得 于是我有将预装载屏蔽了  但是还是不能成功

求教想输出不同相位 还能改变占空比的PWM 的正确方式    有这方面相关的例程吗?求给一份  感谢了


1.png
收藏 评论10 发布时间:2015-6-6 16:47

举报

10个回答
风子 回答时间:2015-6-6 16:59:45
CCR1可以直接改的啊
Paderboy 回答时间:2015-6-6 17:34:03
TIM_SetCompare1(TIM4, TIMCompare1);
斯普朗特 回答时间:2015-6-6 18:26:00
就如同我在中断里的程序那样,,不知道那有问题,改了输出的波形和理论的不一样
你好我好大家好! 回答时间:2015-6-6 18:46:42
  先在中断打个断点,看看程序进中断了吗?还有楼主可以吧你输出的有相位差的波形截个图发上来吗?让大家开开眼界
斯普朗特 回答时间:2015-6-6 18:58:13
中断是进了的,我那个printf就是在检测的 进了中断会给串口发送字符
QQ截图20150606185655.png
斯普朗特 回答时间:2015-6-6 20:22:17
因为溢出也会产生一个中断 我就将中断还是多加了一个标志位,结果输出波形更诡异了

222222.png
333333333.png
qinjie138 回答时间:2015-6-6 20:33:40
lqy846303467 回答时间:2015-6-6 23:48:40
void TIM3_IRQHandler(void)
{
if(TIM3->SR&0X0001)
{
i++;
if(i>=200)
{
i=0;
TIM3->SR&=~(1<<0);
}
else
{
TIM3->CCR1=sine[i];
TIM3->CCR2=sine[i];
//TIM1->SR&=~(1<<1);
TIM3->SR&=~(1<<0);
}
}
}
lqy846303467 回答时间:2015-6-6 23:49:06
这个试试,我的没有问题
PentaKillone 回答时间:2015-11-12 09:16:14
lqy846303467 发表于 2015-6-6 23:49
这个试试,我的没有问题

楼主,我用的也是输出比较模式,改变ccrx的值脉宽并没有改变,电平的都是在当计数达到自动重装载值时才发生翻转,占空比是50%。我用PWM模式输出没有问题

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版