发新帖我要提问
12
返回列表
打印
[STM8]

各位请问如何用STM8的定时器输出相差固定为90度的方波

[复制链接]
楼主: myzcp123
手机看帖
扫描二维码
随时随地手机跟帖
21
Xflyan| | 2011-10-31 10:47 | 只看该作者 回帖奖励 |倒序浏览
学习了!正需要用相差为90度的两个方波...

使用特权

评论回复
22
stinby| | 2011-10-31 12:03 | 只看该作者
修改寄存器的时机或方法有问题。
香水城 发表于 2011-10-31 10:30


电脑通过串口下发新频率指令,在串口循环查询函数中:
  TIM_Cmd(TIM8, DISABLE); //-----关
  TIM_CtrlPWMOutputs(TIM8, DISABLE);   //关

  TIM_SetCounter(TIM8,0);  //清CNT,出头来过。
  TIM_SetCompare1(TIM8, A_T);
  TIM_SetCompare2(TIM8, B_T);

  TIM_CtrlPWMOutputs(TIM8, ENABLE);   //开
  TIM_Cmd(TIM8, ENABLE); //-----开


更新这样做的,串口慢速的给指令时,比较正常。一旦快速的不断下发新频率值(其实都是发的同一个值),就会出现AB波形相位互换的情况。

使用特权

评论回复
23
香水城| | 2011-10-31 12:18 | 只看该作者
修改参数需要在每个周期结束的时候进行,如果一个周期没有结束就改变参数,怎么可能正确呢?

你可以用示波器看看改变频率时刻的波形,再想想就会明白了。

使用特权

评论回复
24
玉骄龙| | 2013-8-16 16:28 | 只看该作者
stinby 发表于 2011-10-27 17:33
香版!您这个方法我测试过,是可以产生固定相位差90度的方波。但是如果运行中需要动态修改这两个波的频率, ...

同感!楼主的这个问题最后解决了吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则