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

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

?? mcp2510.c

?? msp430下使用mcp2510can芯片的源代碼
?? C
字號:
#include  "msp430x13x.h"
#include  "mcp2510.h"
#include  "math.h"
uchar mcp_RD_address(uchar address);

void nop(uchar time)
{
    uchar i;
    for(i=0;i<time;i++);
}

//清看門狗程序
void ClearWDT (void)
{
  WDTCTL=WDT_ARST_250;//看門狗模式,ACLK,250mS
  P3OUT ^=WDI;
}

uchar Get_CAN_address(void)
{
    uchar address;
    address = P1IN & 0xF0;
    address >>= 4;
    address = address-2;
    address *= 4;
    return address;
}
/* This function produce a byte on the SPI communication */
uchar SPI_putch(uchar outdata)
{
   TXBUF0 = outdata;
   while (!(TXEPT & UTCTL0));      // TX finish    
   return RXBUF0;
}
/* Select the MCP2510 by hardware signal CS */
void mcp_select(void)
{
    P3OUT &= ~mcpCS0;               // MCP2510 SELECT        
}

/* Remove the CS from the MCP */
void mcp_unselect(void)
{
    P3OUT |= mcpCS0; 	
}

void mcp_reset(void)
{ 
    uint i;  
    P2OUT&=~RST0;    
    for(i=0;i<50000;i++); 
    ClearWDT();
    for(i=0;i<50000;i++); 
    P2OUT|=RST0;
    
}

uchar mcp_RD_address(uchar address)
{
    uchar store=0X55; 
    mcp_select( );                 // Select the mcp2510    
    SPI_putch(READ);               // Write the command     
    SPI_putch(address);            // Write address 
    store = SPI_putch(DUMMY);      // Write dummy byte to produce clock    
    mcp_unselect( );
    return store;
    
}

void mcp_WR_address(uchar address,uchar output)
{    
    mcp_select( );                 // Select the mcp2510    
    SPI_putch( WRITE );            // Write the command      
    SPI_putch( address );          // Write the address       
    SPI_putch( output );           // Write byte in address     
    mcp_unselect( );
}

uchar mcp_RD_status(void)
{
    uchar store;
    mcp_select( );                 // Select the mcp2510    
    SPI_putch(RD_STAT);            // Write the command    
    store =  SPI_putch(DUMMY);     // Write any byte to get a byte in return     
    mcp_unselect( );
    return store;                  // Command done OK
}

void mcp_write_bits(uchar address,uchar mask,uchar data)
{
    mcp_select();
    SPI_putch(BIT_MOD);
    SPI_putch(address);
    SPI_putch(mask);
    SPI_putch(data);
    mcp_unselect();
}

// TXnumber can be 0,1,2
void mcp_RTS(uchar TXnumber)
{  
    uchar temp;
    switch(TXnumber)
    {
        case 0:
             temp = 0x81;
             break;
        case 1:
             temp = 0x82;
             break;
        case 2:
             temp = 0x84;
             break;
        default:
             break;    
    }
    mcp_select( );     // Select the mcp2510   
    SPI_putch(temp);   // Write the command   
    mcp_unselect();        
}

/* Read one or more registers in the MCP2510, starting at address
   readdata.  */
void mcp_read( uchar address, uchar* readdata, uchar length )
{
    uchar loopCnt;
    mcp_select();               // Select the MCP device at the SPI bus     
    for (loopCnt=0; loopCnt < length; loopCnt++) 
    {        
        *readdata=mcp_RD_address(address);  // reading
        address++;                          // Increment the pointers to next location
        readdata++;
    }
    mcp_unselect();
}

/* Write to one or more registers in the MCP2510, starting at address
   writedata.  */
void mcp_write( uchar address, uchar* writedata, uchar length )
{
    uchar loopCnt;   
    mcp_select();      
    for (loopCnt=0; loopCnt < length; loopCnt++) 
    {        
        mcp_WR_address(address++,*(writedata++)); 
    }
    mcp_unselect();
}

// RXnumber can be 0,1
void mcp_read_can( uchar RXnumber, uchar* data )
{   
    uchar dlc; 
    uchar mcp_addr = RXnumber*16 + 0x61;       
    mcp_read( mcp_addr+4, &dlc, 1 );    
    dlc &= DLC_MASK;
    mcp_read( mcp_addr+5, data, dlc );
}

// TXnumber can be 0,1,2
void mcp_write_can( uchar TXnumber,uchar number,uchar dlc,uchar* data )
{
    uchar canid;
    uchar mcp_addr = TXnumber*16 + 0x31;
    canid = Get_CAN_address();
    mcp_write(mcp_addr, &canid, 1 );       // write TXBNSIDH     
    canid = 0;
    mcp_write((mcp_addr+1),&canid, 0);     // write  TXBNSIDL
    mcp_write((mcp_addr+2),&canid, 0);     // write  TXBNEID8
    mcp_write((mcp_addr+3),&canid, 0);     // write  TXBNEID0
    mcp_write((mcp_addr+4), &dlc,  1);     // write data length   
    mcp_write((mcp_addr+5), &number, 1);   // write frame number   
    mcp_write((mcp_addr+6), data, (dlc-1));   // write data bytes    
}

/* Initialize the MCP2510.  */
void init_can(void)
{
    uchar tmp=0;    
    
    mcp_reset( ); 
    mcp_WR_address(CNF1,0x00);          //16M crystal , 1000KBPS; TQ=125ns, Synchronization Jump Width Length:1TQ
    mcp_WR_address(CNF2,0x90);          //one sample, Phase Segment 1 Length:3TQ, Propagation Segment Length:1TQ
    mcp_WR_address(CNF3,0x02);          //Phase Segment 2 Length : 3TQ
    mcp_WR_address(TXRTSCTRL,0x00);     //Disable RTS PINs    
    mcp_WR_address(TXB0CTRL,0x03);      //Lowest Message Priority   
    mcp_WR_address(TXB1CTRL,0x02);      //High Intermediate Message Priority
    mcp_WR_address(TXB2CTRL,0x00);      //Highest Message Priority  
    
    mcp_WR_address(BFPCTRL,0x00);       //disable RX PINs
    mcp_WR_address(RXB0CTRL,0x00);      //0x00, normal ; Rollover disenabled ; Acceptance Filter 0 (RXF0)   
    mcp_WR_address(RXF0SIDH,Get_CAN_address());      //RXF0SIDH        
    mcp_WR_address(RXF0SIDL,0x00);      //RXF0SIDL      
    mcp_WR_address(RXM0SIDH,0xff);      //RXM0SIDH   
    mcp_WR_address(RXM0SIDL,0xff);      //RXM0SIDL   
    
    mcp_WR_address(CANINTE,0x00);
    mcp_WR_address(CANINTF,0x00);       //INTERRUPT FLAG
    
    tmp=mcp_RD_address(CNF2); 
    mcp_WR_address(CANCTRL,RQM_NORMAL);    
    tmp=mcp_RD_address(CANSTAT);       
    tmp &= 0xE0; 
    while(tmp!=0)    
    { 
        mcp_WR_address(CANCTRL,RQM_CONFIG);                      
        mcp_WR_address(CANCTRL,RQM_NORMAL);         
        tmp=mcp_RD_address(CANSTAT); 
        tmp &= 0xE0;                
    } 
     
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情综合网| 国产乱妇无码大片在线观看| 日韩精品91亚洲二区在线观看| 精品一区二区三区久久| 色先锋aa成人| 国产欧美日韩三级| 久久国产三级精品| 欧美日韩激情一区二区三区| 亚洲视频你懂的| 国产电影一区二区三区| 日韩一区二区三区电影| 亚洲gay无套男同| 99久久久久免费精品国产| 欧美xxxxxxxxx| 轻轻草成人在线| 欧美探花视频资源| 亚洲精品伦理在线| 91视视频在线直接观看在线看网页在线看| 欧美videossexotv100| 亚洲mv在线观看| 欧美视频中文字幕| 亚洲永久精品国产| 色八戒一区二区三区| 国产精品天美传媒| 国产69精品久久99不卡| 国产午夜精品久久久久久免费视 | 中文字幕一区在线观看视频| 激情成人综合网| 91精品福利在线一区二区三区 | 国产精品久久久久aaaa| 国精产品一区一区三区mba视频| 欧美人伦禁忌dvd放荡欲情| 一区二区免费看| 欧美丝袜丝交足nylons| 午夜精品免费在线| 在线成人免费视频| 亚洲va在线va天堂| 欧美人妖巨大在线| 美女一区二区在线观看| 精品99999| 国产成人精品网址| 国产精品成人网| 欧亚洲嫩模精品一区三区| 亚洲成人综合在线| 91精选在线观看| 韩国一区二区视频| 国产精品系列在线| 在线视频一区二区三| 亚洲国产精品久久一线不卡| 制服.丝袜.亚洲.中文.综合| 久久成人免费电影| 中文字幕精品一区二区三区精品| 不卡视频一二三四| 五月婷婷综合网| 日韩精品一区二区三区四区| 成人免费看的视频| 亚洲国产成人av网| 26uuu亚洲综合色欧美| 国产1区2区3区精品美女| 亚洲黄色免费网站| 日韩欧美综合在线| 成人av中文字幕| 亚洲国产精品人人做人人爽| 2019国产精品| 日本乱人伦aⅴ精品| 另类欧美日韩国产在线| 中文字幕精品—区二区四季| 欧美日韩一区二区在线观看视频| 老司机免费视频一区二区 | 日韩免费观看高清完整版 | 日韩一卡二卡三卡四卡| 成人综合在线观看| 天堂成人免费av电影一区| 久久久国产精华| 777午夜精品免费视频| 成人一道本在线| 免费成人在线网站| 一区二区免费在线| 中文一区二区完整视频在线观看| 精品1区2区3区| gogo大胆日本视频一区| 久久99蜜桃精品| 午夜精品一区在线观看| 亚洲婷婷国产精品电影人久久| 日韩欧美国产一区二区三区| 91激情在线视频| 不卡的av电影| 国产精品18久久久久久久网站| 亚洲成人在线免费| 亚洲免费伊人电影| 国产午夜精品一区二区 | 亚洲色图欧洲色图| 久久品道一品道久久精品| 在线播放日韩导航| 色一情一乱一乱一91av| 国产精品系列在线观看| 久久99在线观看| 奇米色777欧美一区二区| 一区二区三区.www| 亚洲三级在线免费| 国产欧美日本一区二区三区| 26uuu精品一区二区三区四区在线| 欧美日韩中文字幕一区| 91国偷自产一区二区三区成为亚洲经典| 国产999精品久久久久久绿帽| 青青草国产成人av片免费| 亚洲国产日日夜夜| 一区二区理论电影在线观看| 一区二区久久久久久| 一区二区三区四区不卡在线| 亚洲欧洲成人av每日更新| 欧美国产综合一区二区| 中文字幕免费观看一区| 中文文精品字幕一区二区| 中文一区二区在线观看| 中文字幕亚洲成人| 最新高清无码专区| 亚洲男人的天堂在线aⅴ视频| 亚洲欧洲精品成人久久奇米网| 亚洲色图.com| 一区二区三区在线观看视频| 亚洲一区在线看| 亚洲bdsm女犯bdsm网站| 强制捆绑调教一区二区| 三级不卡在线观看| 免费美女久久99| 韩国精品在线观看| 高清成人免费视频| av一区二区不卡| 欧美主播一区二区三区美女| 欧美系列在线观看| 在线综合+亚洲+欧美中文字幕| 日韩欧美黄色影院| 国产亚洲综合色| 一区二区三区中文字幕精品精品| 亚洲一区二区在线播放相泽 | 久久99久久久久久久久久久| 久久99精品国产麻豆婷婷洗澡| 国产91综合一区在线观看| 91国模大尺度私拍在线视频 | 欧美三级中文字幕| 日韩小视频在线观看专区| 久久看人人爽人人| 一区二区三区在线免费| 日本女优在线视频一区二区 | 麻豆精品一区二区三区| 成人国产精品免费| 欧美日韩黄视频| 久久久久99精品国产片| 一区二区在线看| 九九久久精品视频| 95精品视频在线| 日韩一级片在线播放| 国产精品色在线观看| 亚洲大尺度视频在线观看| 国产乱码精品一区二区三区忘忧草| 一本色道a无线码一区v| 欧美精品一区二区三区蜜桃视频| 18欧美乱大交hd1984| 奇米影视7777精品一区二区| aaa欧美色吧激情视频| 91精品国产综合久久福利| 国产精品丝袜在线| 免费观看日韩电影| 欧美三日本三级三级在线播放| 久久久国产精品不卡| 日本女优在线视频一区二区| 91污片在线观看| 久久久久久夜精品精品免费| 日韩精品福利网| 在线中文字幕一区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 成人av免费在线| 欧美大片在线观看一区| 亚洲国产精品自拍| 91蜜桃在线观看| 国产精品天干天干在线综合| 国产自产高清不卡| 欧美一二三区精品| 亚洲一区二区精品视频| 色又黄又爽网站www久久| 中文字幕第一区二区| 国产在线视视频有精品| 7777精品伊人久久久大香线蕉经典版下载 | av一二三不卡影片| 久久久久国产一区二区三区四区 | 日韩精品高清不卡| 欧美日韩电影在线| 亚洲美女屁股眼交| 91网站在线观看视频| 国产免费久久精品| 国产精品系列在线观看| 26uuu久久综合| 国产成人在线视频网址| 精品国产成人系列| 激情文学综合丁香| www国产精品av| 国产成人精品亚洲午夜麻豆| 国产精品天美传媒| 99亚偷拍自图区亚洲|