1) .
1.1) Code Composer Studio Lab9.pjt. Lab9.c E:\C281x\Labs\Lab9\lab9.c.
1.2) :
C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source\DSP281x_GlobalVariableDefs.c
C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_PieCtrl.c
C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\ DSP281x_PieVect.c
C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_DefaultIsr.c
C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_CpuTimers.c
C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd\F2812_Headers_nonBIOS.cmd
C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd\F2812_EzDSP_RAM_lnk.cmd
C:\ti\c2000\cgtoolslib\ rts2800_ml.lib
2) , .
2.1) : Project → Build Options, Compiler Preprocessor Include Search Path (-i) :
C:\tidcs\C28\dsp281x\v100\DSP281x_headers\include;..\include
2.2) : Project → Build Options → Linker → Stack Size: 0x400.
2.3) Build Options, OK.
3) Lab9.c.
3.1) while() , 1 . CPU core timer 0 50 CpuTimer0.InterruptCount.
3.2) ECanaShadow:
struct ECAN_REGS ECanaShadow;
3.3) Gpio_select() CANTxA CANRxA CAN-:
GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6 = 1;
GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7 = 1;
3.4) InitCan(), :
3.4.1) ECanaRegs.CANTIOC ECanaRegs.CANRIOC TXFUNC RXFUNC.
3.4.2) HECC CAN ( ECanaRegs.CANMC).
3.4.3) CCR ECanaRegs.CANMC.
3.4.4) CAN CCE ECanaRegs.CANES.
3.4.5) BRP, TSEG1 TSEG2 ECanaRegs.CANBTC , 100 /.
3.4.6) ECanaRegs.CANBTC - CCR ECanaRegs.CANMC.
3.4.7) mailboxes, , , 0 ECanaRegs.CANME.
3.5) mailbox#5 :
3.5.1) 0x10000000 ( IDE EcanaMboxes.MBOX5.MSGID). IDE EcanaMboxes.MBOX1.MSGID 1.
3.5.2) mailbox#5 , MD5 ECanaRegs.CANMD. ECanaRegs.CANMD, :
|
|
ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;
ECanaShadow.CANMD.bit.MD5 = 0;
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
mailbox#5:
ECanaShadow.CANME.all = ECanaRegs.CANME.all;
ECanaShadow.CANME.bit.ME5 = 1;
ECanaRegs.CANME.all = ECanaShadow.CANME.all;
3.8.3) 1 ( DLC ECanaMboxes.MBOX5.MSGCTRL).
4) .
mailbox while(1). :
4.1) GPIO-Port B ( 15 8 ) ECanaMboxes.MBOX5.MDL.byte.BYTE0.
4.2) mailbox#5. ECanaShadow.CANTRS TRS5=1, 0. ECanaRegs.CANTRS.
4.3) , ECanaRegs.CANTA.bit.TA5 1.
4.4) ECanaRegs.CANTA.bit.TA5 :
ECanaShadow.CANTA.all = 0;
ECanaShadow.CANTA.bit.TA5 = 1;
ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;
5) .
5.1) : Debug → Reset CPU, Debug → Restart.
5.2) : Debug → Go main.
5.3) : Debug → Run.