打印
[DSP编程]

dsp产生spwm波

[复制链接]
1028|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linao|  楼主 | 2014-4-1 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//预存A相和B相的正弦值列表,C相的可以根据A相和B相的值计算出来
float sina[30]={ 0.000000,    0.104528,    0.207911,    0.309016,    0.406737,
                 0.500000,    0.587785,    0.669131,    0.743145,    0.809017,
                         0.866025,    0.913545,    0.951057,    0.978148,    0.994522,
                         1.000000,    0.994522,    0.978148,    0.951057,    0.913545,
                         0.866025,    0.809017,    0.743145,    0.669131,    0.587785,
                         0.500000,    0.406737,    0.309016,    0.207911,    0.104528};

float sinb[30]={ 0.866025,    0.809017,    0.743145,    0.669131,    0.587785,
                 0.500000,    0.406737,    0.309016,    0.207911,    0.104528,
                         0.000000,   -0.104528,   -0.207911,   -0.309016,   -0.406737,
                        -0.500000,   -0.587785,   -0.669131,   -0.743145,   -0.809017,
                        -0.866025,   -0.913545,   -0.951057,   -0.978148,   -0.994522,
                        -1.000000,   -0.994522,   -0.978148,   -0.951057,   -0.913545};
interrupt void T1PINT_ISR(void)    // 通用定时器T1的周期中断
{   
    if((i>0)&&(i<N/2)) //前半周期
        {
        EvaRegs.CMPR1=EvaRegs.T1PR*((1.0+M*sina[i])/2.0); //A相
                EvaRegs.CMPR2=EvaRegs.T1PR*((1.0+M*sinb[i])/2.0); //B相
        EvaRegs.CMPR3=EvaRegs.T1PR*((1.0-M*(sina[i]+sinb[i]))/2.0); //C相
        }

        if((i>=N/2)&&(i<N)) //后半周期
        {
        EvaRegs.CMPR1=EvaRegs.T1PR*((1.0-M*sina[i-30])/2.0); //A相
                EvaRegs.CMPR2=EvaRegs.T1PR*((1.0-M*sinb[i-30])/2.0); //B相
                EvaRegs.CMPR3=EvaRegs.T1PR*((1.0+M*(sina[i]+sinb[i]))/2.0); //C相
        }
   
        i++;
        {
      if(i>=N)
          {
         i=0;
          }

        }
    PieCtrl.PIEACK.bit.ACK2=1;   //响应同组中断
        EvaRegs.EVAIFRA.bit.T1PINT=1;//清除中断标志位
        EINT; //开全局中断
}
请问这里的通用定时器1程序中后半周期是怎么算的CMPR1,CMPR2,CMPR3

相关帖子

沙发
zhangmangui| | 2014-4-1 22:00 | 只看该作者
顶顶

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

12

帖子

0

粉丝