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

[复制链接]
8898|23
Xflyan 发表于 2011-10-31 10:47 | 显示全部楼层
学习了!正需要用相差为90度的两个方波...
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波形相位互换的情况。
香水城 发表于 2011-10-31 12:18 | 显示全部楼层
修改参数需要在每个周期结束的时候进行,如果一个周期没有结束就改变参数,怎么可能正确呢?

你可以用示波器看看改变频率时刻的波形,再想想就会明白了。
玉骄龙 发表于 2013-8-16 16:28 | 显示全部楼层
stinby 发表于 2011-10-27 17:33
香版!您这个方法我测试过,是可以产生固定相位差90度的方波。但是如果运行中需要动态修改这两个波的频率, ...

同感!楼主的这个问题最后解决了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部