亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? example_2834xecanback2back.c

?? 德州儀器新款DSP TMS320C2834X 晶片 eCAN程式設計.
?? C
字號:
// TI File $Revision: /main/3 $
// Checkin $Date: May 5, 2008   17:02:38 $
//###########################################################################
//
// FILE:    Example_2834xECanBack2Back.c
//
// TITLE:   DSP2834x eCAN Back-to-back transmission and reception in
//          SELF-TEST mode
//
// ASSUMPTIONS:
//
//    This program requires the DSP2834x header files.
//
//    This progrm uses the peripheral's self test mode.
//    Other then boot mode configuration, no other hardware configuration
//    is required.
//
//    As supplied, this project is configured for "boot to SARAM"
//    operation.  The 2834x Boot Mode table is shown below.
//    For information on configuring the boot mode of an eZdsp,
//    please refer to the documentation included with the eZdsp,
//
//       $Boot_Table:
//
//         GPIO87   GPIO86     GPIO85   GPIO84
//          XA15     XA14       XA13     XA12
//           PU       PU         PU       PU
//        ==========================================
//            1        1          1        1    TI Test Only
//            1        1          1        0    SCI-A boot
//            1        1          0        1    SPI-A boot
//            1        1          0        0    I2C-A boot timing 1
//            1        0          1        1    eCAN-A boot timing 1
//            1        0          1        0    McBSP-A boot
//            1        0          0        1    Jump to XINTF x16
//            1        0          0        0    Jump to XINTF x32
//            0        1          1        1    eCAN-A boot timing 2
//            0        1          1        0    Parallel GPIO I/O boot
//            0        1          0        1    Parallel XINTF boot
//            0        1          0        0    Jump to SARAM	    <- "boot to SARAM"
//            0        0          1        1    Branch to check boot mode
//            0        0          1        0    I2C-A boot timing 2
//            0        0          0        1    Reserved
//            0        0          0        0    TI Test Only
//                                              Boot_Table_End$$
//
// DESCRIPTION:
//
//    This test transmits data back-to-back at high speed without
//    stopping.
//    The received data is verified. Any error is flagged.
//    MBX0 transmits to MBX16, MBX1 transmits to MBX17 and so on....
//    This program illustrates the use of self-test mode
//
//###########################################################################
// Original Author H.J.
//
// $TI Release: C2834x Header Files V1.00 $
// $Release Date: February 25, 2009 $
//###########################################################################

#include "DSP28x_Project.h"     // Device Headerfile and Examples Include File

// Prototype statements for functions found within this file.
void mailbox_check(int32 T1, int32 T2, int32 T3);
void mailbox_read(int16 i);

// Global variable for this example
Uint32  ErrorCount;
Uint32  PassCount;
Uint32  MessageReceivedCount;

Uint32  TestMbox1 = 0;
Uint32  TestMbox2 = 0;
Uint32  TestMbox3 = 0;

void main(void)
{

    Uint16  j;

// eCAN control registers require read/write access using 32-bits.  Thus we
// will create a set of shadow registers for this example.  These shadow
// registers will be used to make sure the access is 32-bits and not 16.
   struct ECAN_REGS ECanaShadow;

// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP2834x_SysCtrl.c file.
   InitSysCtrl();

// Step 2. Initalize GPIO:
// This example function is found in the DSP2834x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio();  // Skipped for this example

// For this example, configure CAN pins using GPIO regs here
// This function is found in DSP2834x_ECan.c
   InitECanGpio();

// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
   DINT;

// Initialize PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the DSP2834x_PieCtrl.c file.
   InitPieCtrl();

// Disable CPU interrupts and clear all CPU interrupt flags:
   IER = 0x0000;
   IFR = 0x0000;

// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example.  This is useful for debug purposes.
// The shell ISR routines are found in DSP2834x_DefaultIsr.c.
// This function is found in DSP2834x_PieVect.c.
   InitPieVectTable();

// Step 4. Initialize all the Device Peripherals:
// This function is found in DSP2834x_InitPeripherals.c
// InitPeripherals(); // Not required for this example

// Step 5. User specific code, enable interrupts:

    MessageReceivedCount = 0;
    ErrorCount = 0;
    PassCount = 0;

	InitECana(); // Initialize eCAN-A module

    // Mailboxs can be written to 16-bits or 32-bits at a time
    // Write to the MSGID field of TRANSMIT mailboxes MBOX0 - 15
    ECanaMboxes.MBOX0.MSGID.all = 0x9555AAA0;
    ECanaMboxes.MBOX1.MSGID.all = 0x9555AAA1;
    ECanaMboxes.MBOX2.MSGID.all = 0x9555AAA2;
    ECanaMboxes.MBOX3.MSGID.all = 0x9555AAA3;
    ECanaMboxes.MBOX4.MSGID.all = 0x9555AAA4;
    ECanaMboxes.MBOX5.MSGID.all = 0x9555AAA5;
    ECanaMboxes.MBOX6.MSGID.all = 0x9555AAA6;
    ECanaMboxes.MBOX7.MSGID.all = 0x9555AAA7;
    ECanaMboxes.MBOX8.MSGID.all = 0x9555AAA8;
    ECanaMboxes.MBOX9.MSGID.all = 0x9555AAA9;
    ECanaMboxes.MBOX10.MSGID.all = 0x9555AAAA;
    ECanaMboxes.MBOX11.MSGID.all = 0x9555AAAB;
    ECanaMboxes.MBOX12.MSGID.all = 0x9555AAAC;
    ECanaMboxes.MBOX13.MSGID.all = 0x9555AAAD;
    ECanaMboxes.MBOX14.MSGID.all = 0x9555AAAE;
    ECanaMboxes.MBOX15.MSGID.all = 0x9555AAAF;

    // Write to the MSGID field of RECEIVE mailboxes MBOX16 - 31
    ECanaMboxes.MBOX16.MSGID.all = 0x9555AAA0;
    ECanaMboxes.MBOX17.MSGID.all = 0x9555AAA1;
    ECanaMboxes.MBOX18.MSGID.all = 0x9555AAA2;
    ECanaMboxes.MBOX19.MSGID.all = 0x9555AAA3;
    ECanaMboxes.MBOX20.MSGID.all = 0x9555AAA4;
    ECanaMboxes.MBOX21.MSGID.all = 0x9555AAA5;
    ECanaMboxes.MBOX22.MSGID.all = 0x9555AAA6;
    ECanaMboxes.MBOX23.MSGID.all = 0x9555AAA7;
    ECanaMboxes.MBOX24.MSGID.all = 0x9555AAA8;
    ECanaMboxes.MBOX25.MSGID.all = 0x9555AAA9;
    ECanaMboxes.MBOX26.MSGID.all = 0x9555AAAA;
    ECanaMboxes.MBOX27.MSGID.all = 0x9555AAAB;
    ECanaMboxes.MBOX28.MSGID.all = 0x9555AAAC;
    ECanaMboxes.MBOX29.MSGID.all = 0x9555AAAD;
    ECanaMboxes.MBOX30.MSGID.all = 0x9555AAAE;
    ECanaMboxes.MBOX31.MSGID.all = 0x9555AAAF;

    // Configure Mailboxes 0-15 as Tx, 16-31 as Rx
    // Since this write is to the entire register (instead of a bit
    // field) a shadow register is not required.
    ECanaRegs.CANMD.all = 0xFFFF0000;

    // Enable all Mailboxes */
    // Since this write is to the entire register (instead of a bit
    // field) a shadow register is not required.
    ECanaRegs.CANME.all = 0xFFFFFFFF;

    // Specify that 8 bits will be sent/received
    ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX1.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX2.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX3.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX4.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX5.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX6.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX7.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX8.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX9.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX10.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX11.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX12.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX13.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX14.MSGCTRL.bit.DLC = 8;
    ECanaMboxes.MBOX15.MSGCTRL.bit.DLC = 8;


    // Write to the mailbox RAM field of MBOX0 - 15
    ECanaMboxes.MBOX0.MDL.all = 0x9555AAA0;
    ECanaMboxes.MBOX0.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX1.MDL.all = 0x9555AAA1;
    ECanaMboxes.MBOX1.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX2.MDL.all = 0x9555AAA2;
    ECanaMboxes.MBOX2.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX3.MDL.all = 0x9555AAA3;
    ECanaMboxes.MBOX3.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX4.MDL.all = 0x9555AAA4;
    ECanaMboxes.MBOX4.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX5.MDL.all = 0x9555AAA5;
    ECanaMboxes.MBOX5.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX6.MDL.all = 0x9555AAA6;
    ECanaMboxes.MBOX6.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX7.MDL.all = 0x9555AAA7;
    ECanaMboxes.MBOX7.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX8.MDL.all = 0x9555AAA8;
    ECanaMboxes.MBOX8.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX9.MDL.all = 0x9555AAA9;
    ECanaMboxes.MBOX9.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX10.MDL.all = 0x9555AAAA;
    ECanaMboxes.MBOX10.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX11.MDL.all = 0x9555AAAB;
    ECanaMboxes.MBOX11.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX12.MDL.all = 0x9555AAAC;
    ECanaMboxes.MBOX12.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX13.MDL.all = 0x9555AAAD;
    ECanaMboxes.MBOX13.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX14.MDL.all = 0x9555AAAE;
    ECanaMboxes.MBOX14.MDH.all = 0x89ABCDEF;

    ECanaMboxes.MBOX15.MDL.all = 0x9555AAAF;
    ECanaMboxes.MBOX15.MDH.all = 0x89ABCDEF;

    // Since this write is to the entire register (instead of a bit
    // field) a shadow register is not required.
    EALLOW;
    ECanaRegs.CANMIM.all = 0xFFFFFFFF;

    // Configure the eCAN for self test mode
    // Enable the enhanced features of the eCAN.
    EALLOW;
    ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
    ECanaShadow.CANMC.bit.STM = 1;    // Configure CAN for self-test mode
    ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
    EDIS;

    // Begin transmitting
    for(;;)
    {

       ECanaRegs.CANTRS.all = 0x0000FFFF;  // Set TRS for all transmit mailboxes
       while(ECanaRegs.CANTA.all != 0x0000FFFF ) {}  // Wait for all TAn bits to be set..
       ECanaRegs.CANTA.all = 0x0000FFFF;   // Clear all TAn
       MessageReceivedCount++;

       //Read from Receive mailboxes and begin checking for data */
       for(j=0; j<16; j++)         // Read & check 16 mailboxes
       {
          mailbox_read(j);         // This func reads the indicated mailbox data
          mailbox_check(TestMbox1,TestMbox2,TestMbox3); // Checks the received data
       }
    }
}

// This function reads out the contents of the indicated
// by the Mailbox number (MBXnbr).
void mailbox_read(int16 MBXnbr)
{
   volatile struct MBOX *Mailbox;
   Mailbox = &ECanaMboxes.MBOX0 + MBXnbr;
   TestMbox1 = Mailbox->MDL.all; // = 0x9555AAAn (n is the MBX number)
   TestMbox2 = Mailbox->MDH.all; // = 0x89ABCDEF (a constant)
   TestMbox3 = Mailbox->MSGID.all;// = 0x9555AAAn (n is the MBX number)

} // MSGID of a rcv MBX is transmitted as the MDL data.


void mailbox_check(int32 T1, int32 T2, int32 T3)
{
    if((T1 != T3) || ( T2 != 0x89ABCDEF))
    {
       ErrorCount++;
    }
    else
    {
       PassCount++;
    }
}


//===========================================================================
// No more.
//===========================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51精品视频一区二区三区| 亚洲柠檬福利资源导航| 成人免费小视频| 偷拍亚洲欧洲综合| 99久久99久久久精品齐齐| 日韩三级视频在线观看| 亚洲精品国产a| 国产精品一区在线观看乱码| 欧美亚洲精品一区| 国产精品久久久久桃色tv| 奇米在线7777在线精品| 91成人在线免费观看| 国产欧美日本一区视频| 秋霞电影一区二区| 欧美日韩国产一区二区三区地区| 最近日韩中文字幕| 国产成人午夜高潮毛片| 日韩一区二区免费在线观看| 亚洲国产aⅴ天堂久久| 91在线小视频| 国产精品每日更新| 成人永久aaa| 国产亚洲综合色| 国产综合色在线视频区| 日韩一级黄色片| 日本成人在线看| 51精品视频一区二区三区| 亚洲风情在线资源站| 色中色一区二区| 亚洲天天做日日做天天谢日日欢 | caoporm超碰国产精品| 日韩一区和二区| 日本成人中文字幕在线视频| 欧美日本韩国一区二区三区视频| 亚洲欧美日韩国产一区二区三区| 99视频精品在线| 亚洲视频香蕉人妖| 91丨porny丨户外露出| 亚洲乱码国产乱码精品精98午夜| 92精品国产成人观看免费| 18成人在线视频| 欧美中文字幕一区| 性欧美大战久久久久久久久| 欧美精品久久99| 美腿丝袜亚洲三区| 久久精品夜夜夜夜久久| 国产成人精品免费网站| 中文字幕亚洲电影| 欧美亚洲高清一区二区三区不卡| 亚洲r级在线视频| 日韩欧美成人激情| 丰满少妇久久久久久久| 亚洲人成在线观看一区二区| 91国偷自产一区二区三区观看| 一区二区三区在线观看欧美| 欧美电影在哪看比较好| 久久国产三级精品| 国产欧美日韩不卡免费| 在线观看网站黄不卡| 免费高清视频精品| 国产免费成人在线视频| 色视频欧美一区二区三区| 日韩专区在线视频| 国产人妖乱国产精品人妖| 91蜜桃网址入口| 日产欧产美韩系列久久99| 久久综合色鬼综合色| 99精品热视频| 美国三级日本三级久久99| 亚洲国产精品国自产拍av| 91福利精品第一导航| 激情国产一区二区| 亚洲精品免费在线播放| 日韩欧美色综合| 成人app在线观看| 日本欧美一区二区三区| 国产精品久久二区二区| 欧美一区二区三区视频| 99麻豆久久久国产精品免费优播| 日韩在线卡一卡二| 中文字幕一区二区不卡| 日韩视频免费观看高清完整版 | 男人的j进女人的j一区| 中文字幕在线一区免费| 日韩视频在线永久播放| 色天天综合色天天久久| 国产xxx精品视频大全| 午夜视频在线观看一区二区| 国产精品三级视频| 精品久久久久久久久久久久久久久| 91在线一区二区三区| 国模冰冰炮一区二区| 天天色综合成人网| 亚洲另类在线制服丝袜| 国产婷婷色一区二区三区四区| 欧美精品久久久久久久久老牛影院| 成人一区二区三区视频在线观看 | 日韩欧美的一区二区| 欧美性一级生活| 91丝袜呻吟高潮美腿白嫩在线观看| 精品一区二区在线视频| 亚洲www啪成人一区二区麻豆| 亚洲色图19p| 综合在线观看色| 国产精品情趣视频| 久久精品人人爽人人爽| 欧美xxxx老人做受| 91精品国产入口| 91精品国产91久久久久久一区二区| 91久久精品一区二区| 91蝌蚪国产九色| 99精品在线观看视频| 99国产精品一区| a在线播放不卡| 99久久er热在这里只有精品15| 国产成人免费在线观看| 国产精品99久久久久久久vr| 国产精品综合久久| 国产91精品在线观看| 国产91精品露脸国语对白| 成人午夜视频网站| 成人小视频在线观看| jvid福利写真一区二区三区| av一区二区三区四区| 92精品国产成人观看免费| 99久久精品情趣| 一本到三区不卡视频| 一本到不卡免费一区二区| 在线观看av一区| 精品国产免费视频| 久久久久九九视频| 国产精品麻豆视频| 亚洲影视在线播放| 午夜影院久久久| 国产一区二区按摩在线观看| 福利一区在线观看| 91久久国产最好的精华液| 欧美色综合网站| 欧美大片在线观看一区二区| 精品99一区二区三区| 国产精品白丝在线| 午夜精品一区二区三区免费视频| 日本亚洲三级在线| 国产成人av电影在线| 色94色欧美sute亚洲线路二| 欧美精品日韩精品| 欧美韩日一区二区三区| 一区二区三区在线视频观看58| 日本午夜一区二区| 风间由美一区二区av101| 欧美日韩中字一区| 26uuu亚洲| 亚洲高清不卡在线观看| 久久国产视频网| 色婷婷亚洲一区二区三区| 91精品国产综合久久福利软件 | 一区二区在线观看免费| 免费一区二区视频| 91亚洲精品久久久蜜桃网站| 69堂精品视频| 最好看的中文字幕久久| 蜜臂av日日欢夜夜爽一区| av欧美精品.com| 欧美sm极限捆绑bd| 一片黄亚洲嫩模| 岛国精品在线播放| 欧美一区国产二区| 亚洲天堂网中文字| 国产又粗又猛又爽又黄91精品| 欧美系列在线观看| 国产精品丝袜一区| 久久国产精品第一页| 日本丰满少妇一区二区三区| 26uuuu精品一区二区| 婷婷开心激情综合| 91在线porny国产在线看| 久久久久久久综合日本| 五月天婷婷综合| 日本高清不卡在线观看| 中文在线一区二区| 精品一区二区日韩| 欧美美女网站色| 一区二区三区四区不卡在线 | 欧美aⅴ一区二区三区视频| 91亚洲男人天堂| 中文字幕一区三区| 国产成人免费9x9x人网站视频| 欧美一区二区日韩一区二区| 亚洲在线视频一区| 色综合久久久久| 国产精品国产a级| 国产99精品国产| 日本一区二区视频在线| 国产自产视频一区二区三区 | 欧美日韩美女一区二区| 伊人一区二区三区| 91成人国产精品| 亚洲最色的网站| 欧美日韩视频在线一区二区| 亚洲综合激情另类小说区|