【求助】STC8G增强PWM会被打断?
本帖最后由 sun65886566 于 2024-7-17 12:05 编辑型号STC8G2K64S4
调用外设:定时器0,1中断计数,定时2串口波特率,串口1,2,3中断,SPI中断
异常现象:使用增强PWM时,发现脉冲会周期性停止,停止周期和定时器周期基本重合,这是正常的吗?如何避免呢?在代码中我选择了PWM系统时钟且屏蔽了PWM中断,所以我觉得即使有其他中断脉冲也不应该停止。
#define PWMCOUNT 0xc80 //3200个计数
U8 rate = 50;
PWMSET = 0x04; //使能PWM2
P_SW2 = 0x80;
PWM2CKS = 0x06; //系统时钟7分频,22.4M/(6+1)=3.2MHz
PWM2C = PWMCOUNT; //单脉冲3200个时钟,脉冲1KHz
PWM23T1 = 0; //低电平起始
PWM23T2 = (100-rate)*0x20; //高电平起始,占空比设置
PWM23CR = 0x80; //使能PWM23
P_SW2 = 0x00;
PWMCFG23 = 0x01; //启动PWM2
定时器中断中进行了什么操作
1. 这不正常。
2. 理论上不应该这样,所以无从谈如何避免。
3. 你在定时中断里面干啥了?莫不是操作PWM相关了? PWM是硬件完成的,所以只要不操作PWM,则其会一直不变的。
请检查你的定时器中断是否操作了PWM。 梁工 发表于 2024-7-17 18:03
PWM是硬件完成的,所以只要不操作PWM,则其会一直不变的。
请检查你的定时器中断是否操作了PWM。 ...
找到问题了,我为了SPI主频分频了。。。 sun65886566 发表于 2024-7-18 11:06
找到问题了,我为了SPI主频分频了。。。
{:4_187:}{:4_187:}{:4_187:} sun65886566 发表于 2024-7-18 11:06
找到问题了,我为了SPI主频分频了。。。
主频分频只是会导致输出的PWM频率降低,但不会导致“周期性停止”,PWM还是连续输出的。
页:
[1]