请教如何用4M的MCU IO模拟产生2K PWM

2019-12-10 18:32发布

请教如何用4M的MCU IO模拟产生2K  PWM
占空比0-100%可调,分100阶, 主函数中任务还有AD扫描检测 1ms扫描检测一次.
这个产品主要用于PWM调光用,频率太低了 会闪,所以至少要2K的频率
但是芯片的速度又有限制,大家有什么好的办法。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
20条回答
retention
2019-12-12 03:11
利用定时器的计数器在主循环里面不停的判断,还是可以模拟 PWM的

定时器是有吧,如果连定时器都没有,那我这个方法是帮不了你的。。



  1. u8 r_pwm;  
  2. u8 g_pwm;
  3. u8 b_pwm;

  4. //假如定时器的计数寄存器值溢出值为 100,那么当你开了定时器之后,这个counter的值会在  0-99之间循环变化的

  5. //假如红灯的的占空比的数值为  r_pwm = 30的时候,你在主循环不停的刷新以下if语句,就能实现最高亮度的 30%(大约范围):

  6. if(r_pwm> counter)     RedLed = LED_ON;
  7. else                           RedLed = LED_OFF;               


  8. //当你把r_pwm的数值改大或改小,就基本模拟出来 PWM了
复制代码

一周热门 更多>