- 打卡等级:初来乍到
- 打卡总天数:7
- 最近打卡:2025-06-10 09:21:44
注册会员
- 积分
- 88
|
发表于 2025-5-5 15:54:31
|
显示全部楼层
梁工你好,我想改变一下正弦波幅度的大小,以下是改成0.5倍。但是出来的波形只能说是个正弦的样子了,没有之前的那样平滑,是我改的地方有问题吗?谢谢。
/******************** 中断函数 **************************/
void PWMA_ISR() interrupt PWMA_VECTOR
{
u8 sr1;
sr1 = PWMA_SR1; //为了快速, 中断标志用一个局部变量处理
PWMA_SR1 = 0; //清除中断标志
PWMA_SR2 = 0; //清除中断标志
if(sr1 & 0x01) //更新中断标志
{
SineSum += (u16)SineFreq; //正弦波频率, 1~255Hz
if(SineSum >= 15480) SineSum = 0 ; //23040
SineIndex = SineSum / 43;
PWMA_CCR1H = (u8)(T_SIN_0[SineIndex]/2 >> 8); // 计数器比较值, 控制占空比
PWMA_CCR1L = (u8)T_SIN_0[SineIndex]/2; // 计数器比较值, 控制占空比
PWMA_CCR2H = (u8)(T_SIN_120[SineIndex]/2 >> 8); //
PWMA_CCR2L = (u8)T_SIN_120[SineIndex]/2; //
PWMA_CCR3H = (u8)(T_SIN_240[SineIndex]/2 >> 8); //
PWMA_CCR3L = (u8)T_SIN_240[SineIndex]/2; //
}}
|
|