标题:
怎么同时输出不同频率占空比的两路PWM,可调节
[打印本页]
作者:
淡忘一世
时间:
2022-7-28 16:25
标题:
怎么同时输出不同频率占空比的两路PWM,可调节
stc8a8k64D4怎么同时输出不同频率占空比的两路PWM,可调节,比如说一路10khz 50%占空比 另一路5K 40%占空比,求大佬指教
作者:
Y_G_G
时间:
2022-7-28 20:24
在数据手册中
STC8A的PWM和其它STC型号的PWM一样洋洋洒洒一大堆,看半天看不明白,但你总得去看的,慢慢看,认真看,2个小时就可以看明白了你在这问,无非就是一堆代码,你只能看明白代码,却不会知道代码是什么意思,最终还是得看数据手册
代码在STC下载器那直接复制就行,我就不复制了
51hei截图20220728202032.png
(79.84 KB, 下载次数: 19)
下载附件
2022-7-28 20:23 上传
作者:
wulin
时间:
2022-7-28 21:11
PCA/CCP/PWM只能输出3路同频不同占空比的PWM。
使用新增的15位增强型 PWM 可以输出8路不同频任意占空比的PWM。
作者:
yzwzfyz
时间:
2022-7-29 08:12
单片机上有PWM模块的用模块去做。没有模块的用定时器去做。
用定时器做N路PWM的方式:
1、用一个定时器用于时基,如:用T0中断做一个1ms的定时器。
2、做2N个计时器(寄存器)和N个开关,N个用于计高电平时间,另N个用于计低电平时间,N个开关用于控制计时器是否工作。
以第三个为例:N3H个用于计高电平时间,N3L个用于计低电平时间,K3用于控制计时器是否工作。
T0中断程序中:
检测K3和第三路的输出。
K3=0,不处理。
K3=1,输出为1时,N3H+1计数,计满后复位N3H准备下次用,再将输出清0;
K3=1,输出为0时,N3L+1计数,计满后复位N3L准备下次用,再将输出置1;
主程序中:
初始化时复位所有的计时器及开关。
调节第三路占空比时,改动N3H,N3L的复位值即可(复位值也需要占用两个寄存器,宽度大时自行增加寄存器)。
起动第三路时,将K3置1。
停止第三路时,将K3清0,并处理第三路的输入,将输入做成需要的0或1。
以8路输出为例需要占用的寄存器为33个字节:
8个字节用于输出1计时;
8个字节存放复位1的值;
8个字节用于输出0计时;
8个字节存放复位0的值;
1个字节用于8个开关,一位控制一路。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1