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

2019-12-10 18:32发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
foxpro2005
1楼-- · 2019-12-12 05:22
 精彩回答 2  元偷偷看……
abc220
2楼-- · 2019-12-12 09:54
本帖最后由 abc220 于 2019-5-23 22:04 编辑

7楼的方法可行,也类似这样用过。100us的定时器中断里面硬延时跑小于50%周期的那段电平。用这个方法8MHz主频,指令周期4分频,相当于2MHz指令周期,输出10K的频率无压力。
retention
3楼-- · 2019-12-12 15:05
7楼的方法也不错,又学了一招。标记一下软件模拟pwm
vuo50z
4楼-- · 2019-12-12 16:18
innovision 发表于 2019-5-23 14:27
有没有定时器中断可以用呢?
如果有的话,设定1个500us的定时中断。
在中断程序中,进行判断。

如果有两个定时器配合,还能给应用留出更多时间。一个200k的定时器置高,如果高电平时间大于一个阀值,就设定另一个定时器置低。如果小于阀值则用指令延时置低。这个阀值根据进入中断开销实际确定。
如果对频率要求不严格,也可以共用一个定时器。
mcu5i51
5楼-- · 2019-12-12 16:52
只要每次修改定时器的时间,一个定时器就可以;
ilikemcu
6楼-- · 2019-12-12 19:55
 精彩回答 2  元偷偷看……

一周热门 更多>