sun65886566 发表于 2024-7-17 12:05:55

【求助】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

DebugLab 发表于 2024-7-17 12:09:08

定时器中断中进行了什么操作

hsrzq 发表于 2024-7-17 12:29:00

1. 这不正常。
2. 理论上不应该这样,所以无从谈如何避免。
3. 你在定时中断里面干啥了?莫不是操作PWM相关了?

梁工 发表于 2024-7-17 18:03:16

PWM是硬件完成的,所以只要不操作PWM,则其会一直不变的。
请检查你的定时器中断是否操作了PWM。

sun65886566 发表于 2024-7-18 11:06:07

梁工 发表于 2024-7-17 18:03
PWM是硬件完成的,所以只要不操作PWM,则其会一直不变的。
请检查你的定时器中断是否操作了PWM。 ...

找到问题了,我为了SPI主频分频了。。。

hsrzq 发表于 2024-7-18 11:13:38

sun65886566 发表于 2024-7-18 11:06
找到问题了,我为了SPI主频分频了。。。

{:4_187:}{:4_187:}{:4_187:}

梁工 发表于 2024-7-18 14:45:17

sun65886566 发表于 2024-7-18 11:06
找到问题了,我为了SPI主频分频了。。。

主频分频只是会导致输出的PWM频率降低,但不会导致“周期性停止”,PWM还是连续输出的。
页: [1]
查看完整版本: 【求助】STC8G增强PWM会被打断?