完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 小寒咍 于 2021-4-22 09:10 编辑
#include "DSP2833x_Project.h" #pragma CODE_SECtiON(InitFlash,"ramfuncs") void mailbox_read(int16 i); void InitEPwm1_4Example(void);//EPwm1-4的初始化 void InitEPwm5_6Example(void);//EPwm5-6的初始化 interrupt void ECAN0_ISR(void); //Ecan0的中断服务函数 void eCAN0_int(void); void eCAN_Config(void); long loopcount1 = 0; long loopcount2 = 0; long loopcount3 = 0; Uint32 TestMbox1=12 ; volatile unsigned TestMbox2 ; volatile unsigned TestMbox3 ; volatile unsigned TestMbox4 ; volatile unsigned TestMbox5 ; volatile unsigned TestMbox6 ; Uint32 TEMP1 ; Uint32 TEMP2 ; Uint32 TEMP3 ; Uint32 TEMP4 ; Uint32 TEMP5 ; Uint32 TEMP6 ; Uint32 BYTE[6] ; Uint32 _8_BYTE[12]; struct ECAN_REGS ECanbShadow; float Value[8]; void main(void) { InitSysCtrl(); InitECanbGpio(); InitECanb(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); // InitFlash(); PassCount = 0; EALLOW; InitEPwm1Gpio(); InitEPwm2Gpio(); InitEPwm3Gpio(); InitEPwm4Gpio(); InitEPwm5Gpio(); InitEPwm6Gpio(); EDIS; eCAN0_int(); eCAN_Config(); EALLOW; PieVectTable.ECAN0INTB = &ECAN0_ISR; EDIS; PieCtrlRegs.PIEIER9.bit.INTx7 = 1; PieCtrlRegs.PIECTRL.bit.ENPIE = 1; IER |= M_INT9; EINT; //开全局中断 ERTM; InitEPwm1_4Example(); InitEPwm5_6Example(); // Begin transmitting for(;;) { /* ECanbRegs.CANTRS.all = 0x00000001; // Set TRS for all transmit mailboxes while(ECanbRegs.CANTA.all != 0x00000001 ) {} // Wait for all TAn bits to be set.. ECanbRegs.CANTA.all = 0x00000001; // Clear all TAn MessageReceivedCount++; //mailbox_read(16); */ loopcount1 ++; } /* while(1) { while(ECanbRegs.CANRMP.all != 0x00010000 ) {} ECanbRegs.CANRMP.all = 0x00010000; //mailbox_read(16); loopcount1 ++; } */ } void ECAN0_ISR(void) { if(ECanbRegs.CANRMP.all == 0x00010000 ) volatile struct MBOX *Mailbox; Mailbox = &ECanbMboxes.MBOX0 + 16; TestMbox1=1; TestMbox1=Mailbox->MDL.all; // = 0x9555AAAn (n is the MBX number) TestMbox2=ECanbMboxes.MBOX16.MDH.all; // = 0x89ABCDEF (a constant) TestMbox3=ECanbMboxes.MBOX16.MSGID.all;// = 0x9555AAAn (n is the MBX number) ECanbRegs.CANRMP.all = 0x00010000; TEMP1=TestMbox1; TEMP2=TestMbox2; TEMP5=5; PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; loopcount2 ++; } |
|
相关推荐
1个回答
|
|
有什么问题吗
|
|
|
|
只有小组成员才能发言,加入小组>>
3052个成员聚集在这个小组
加入小组2968 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3691 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2366 浏览 1 评论
4830 浏览 1 评论
2592 浏览 1 评论
1370浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3691浏览 2评论
2968浏览 1评论
1564浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:43 , Processed in 1.528485 second(s), Total 48, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号