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

2019-12-10 18:32发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
su33691
1楼-- · 2019-12-10 19:04
用汇编写没有问题。
lcw_swust
2楼-- · 2019-12-10 23:04
本帖最后由 lcw_swust 于 2019-5-23 12:01 编辑

void timer0()
{
POUT=1;
delay(t);
POUT=0;
}
占空比大的话就反个相
hidden
3楼-- · 2019-12-11 00:58
 精彩回答 2  元偷偷看……
our2008
4楼-- · 2019-12-11 01:36
本帖最后由 our2008 于 2019-5-23 12:10 编辑

调光要不闪的话,几百Hz就可以了!

但是控制电流的PWM 得用外部器件!
阿豪博士
5楼-- · 2019-12-11 03:47
IIC 或者其他的 SPI 一类的 PWM 调光芯片吧!
innovision
6楼-- · 2019-12-11 09:29
本帖最后由 innovision 于 2019-5-23 14:30 编辑

有没有定时器中断可以用呢?
如果有的话,设定1个500us的定时中断。
在中断程序中,进行判断。
duty 小于50%的时候,在中断中直接硬延时输出高电平;其它CPU时间留给主程序
duty 大于50%的时候,在中断中硬延时输出低电平,其它CPU时间留给主程序。

10多年前,我们用PIC16F676(外部20M RC,4个时钟周期,相当于5M 指令周期)可以做到62K的PWM输出,用于充电器的。当时带PWM跟ADC的芯片还是挺贵的

一周热门 更多>