有没有会写单片机的大神,帮忙看下这个程序,江湖救急在线等。我已经把这个程序的源代码以及单片机相关资料整理在评论区置顶,这款是东软ESP7001的单片机,这个程序主要用来做LED调光用,现在频率是20K,实测调光时有闪烁,特别是占空比快到100%时一定会闪一下,所以我想把PWM的频率调为10K再测一下,这个软件是其他人写好的,我自已不懂单片机。

给你提供给一个思路:利用51定时器产生us级别的中断,然后设置两个变量,一个是pwm周期,也就是你说的1/10khz,另一个是占空比变量,让占空比变量的值是周期寄存器值的一半就可以了这样就是50%占空比的方波,等到你要改占空比或者频率的时候只要改这两个变量就行。麦科信平板示波器23种测量项之正负占空比介绍。用中断检测下降沿,开始计时t1,同时信号进入高电平后开始计时t2,信号变为低电平t1t2结束计时。

记录波形低电平和高电平的时间,加起来就是周期,一比就是战功比,频率较高的话,就不能这么测了。用中断检测下降沿,开始计时t1,同时信号进入高电平后开始计时t2,信号变为低电平t1t2结束计时。占空比高电平时间/周期t2/t1.单片机开发问题或许我这可以帮助的。如果要求精度较高,可利用外部中断测量,或直接使用外部触发的定时器中断。
3、如何用单片机捕捉PWM占空比?检测1到0和0到1的时间中断检测才能准确到us。检测高低电平的时间计算,#defineTEST_INPA0//要测试的信号#defineF_TEST_INPA1//要测试信号的反向,加一个反向门得到的main(){unsignedlonglow_cnt,high_cnt;while(1){while(TEST_IN);//确保TEST_IN0;low_cnt0;high_cnt0;while(!TEST_IN);//确保TEST_IN1;while(TEST_IN)high_cnt++;//计算高电平数量while(F_TEST_IN)low_cnt++;//计算低电平数量//以下添加其他的处理代码。