DSP28335测试总结
Uint16 T=2343750/f-1.0;
EPwm1Regs.CMPA.half.CMPA= pw*T;// 设置EPWM1A比较值寄存器的比较值,即体现EPWM1A的占空比 }
void UpdatePwm1B(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0;
EPwm1Regs.CMPB= pw*T;// 设置EPWM1A比较值寄存器的比较值,即体现EPWM1A的占空比 }
void UpdatePwm2A(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0;
EPwm2Regs.CMPA.half.CMPA= pw*T; }
void UpdatePwm2B(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0; EPwm2Regs.CMPB= pw*T; }
void UpdatePwm3A(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0;
EPwm3Regs.CMPA.half.CMPA= pw*T; }
void UpdatePwm3B(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0; EPwm3Regs.CMPB= pw*T; }
void UpdatePwm4A(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0;
EPwm4Regs.CMPA.half.CMPA= pw*T; }
31
DSP28335测试总结
void UpdatePwm4B(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0; EPwm4Regs.CMPB= pw*T; }
void UpdatePwm5A(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0;
EPwm5Regs.CMPA.half.CMPA= pw*T; }
void UpdatePwm5B(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0; EPwm5Regs.CMPB= pw*T; }
void UpdatePwm6A(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0;
EPwm6Regs.CMPA.all= pw*T; }
void UpdatePwm6B(float32 pw,float32 f) {
Uint16 T=2343750/f-1.0; EPwm6Regs.CMPB= pw*T; }
//=========================================================================== // End of file.
//===========================================================================
32
DSP28335测试总结
8.2邮箱初始化函数
//###########################################################################
//CAN邮箱初始化函数
//入口参数分别为ID标识符(0xFFFFFFFF32位16进制格式如0xFFFFFFFF)、 //数据字节数(0到8)、发送与接收标志(0为发送1为接收)
//注意标识符的最高位即0x后面一位应至少为8,才符合CAN2.0B协议的扩展帧
//###########################################################################
#include \DSP2833x_Device.h\ // DSP28 Headerfile Include File #include \DSP2833x_Examples.h\ // DSP28 Examples Include File
void InitMboxA0(Uint32 MID,Uint16 DTL,Uint16 TR) { struct ECAN_REGS ECanaShadow; EALLOW;
ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all; ECanaShadow.CANTIOC.bit.TXFUNC = 1;
ECanaRegs.CANTIOC.all = ECanaShadow.CANTIOC.all;
ECanaShadow.CANRIOC.all = ECanaRegs.CANRIOC.all; ECanaShadow.CANRIOC.bit.RXFUNC = 1;
ECanaRegs.CANRIOC.all = ECanaShadow.CANRIOC.all; ECanaShadow.CANMC.all = ECanaRegs.CANMC.all; ECanaShadow.CANMC.bit.SCB = 1; //选择eCAN模式,将32个邮箱寄存器全部使用起来 ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
ECanaMboxes.MBOX0.MSGCTRL.all = 0x00000000; //此语句含邮箱号,可以修改 //以下状态或标志寄存器通过写1清零// ECanaRegs.CANTA.all= 0xFFFFFFFF;
33
DSP28335测试总结
ECanaRegs.CANRMP.all= 0xFFFFFFFF; ECanaRegs.CANGIF0.all= 0xFFFFFFFF; ECanaRegs.CANGIF1.all= 0xFFFFFFFF;
//配置邮箱收发方向//
ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;
ECanaShadow.CANMD.bit.MD0 = TR; //此语句含邮箱号,可以修改
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
//配置标识符ID,写标识符前必须关闭使能位// ECanaShadow.CANME.all = ECanaRegs.CANME.all;
ECanaRegs.CANME.bit.ME0= 0; //此语句含邮箱号,可以修改 ECanaRegs.CANME.all = ECanaShadow.CANME.all; ECanaMboxes.MBOX0.MSGID.all = MID; //此语句含邮箱号,可以修改
//标识符配置结束后使能相应的邮箱//
ECanaShadow.CANME.all = ECanaRegs.CANME.all;
ECanaShadow.CANME.bit.ME0 = 1; //此语句含邮箱号,可以修改
ECanaRegs.CANME.all = ECanaShadow.CANME.all;
//设置数据长度的字节数//
ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = DTL;//此语句含邮箱号,可以修改 EDIS; }
//###########################################################################
//CAN邮箱初始化函数
//入口参数分别为ID标识符(0xFFFFFFFF32位16进制格式如0xFFFFFFFF)、 //数据字节数(0到8)、发送与接收标志(0为发送1为接收)
//注意标识符的最高位即0x后面一位应至少为8,才符合CAN2.0B协议的扩展帧
//###########################################################################
#include \DSP2833x_Device.h\ // DSP28 Headerfile Include File
34