• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于dsPIC33FJ128MC506的CAN通信(07-100)

    基于dsPIC33FJ128MC506的CAN通信(07-100)

    ——
    作者:山東省科學(xué)院自動化研究所 張云 李明強 莊汝科 時間:2009-03-04 來源:電子產(chǎn)品世界 收藏

      下面的函數(shù)用來寫接收屏蔽寄存器"m" ,各輸入?yún)?shù)的意義分別為:

    本文引用地址:http://www.czjhyjcfj.com/article/92042.htm

      m-> 屏蔽寄存器號[0-3]

      identifier->屏蔽位

      mide -> "0" 表示無論是標(biāo)準(zhǔn)幀還是擴展幀,屏蔽器都起作用

      "1" 表示屏蔽器是否起作用要參照'exide' 位 */

      void ecan1WriteRxAcptMask(int m, long identifier, unsigned int mide)

      {

      /*定義局部變量*/

      unsigned long sid10_0=0, eid15_0=0, eid17_16=0;

      unsigned int *maskRegAddr;

      //因為將要設(shè)置的特殊寄存器要與別的寄存器共用地址,所以需設(shè)置控制位WIN

      C1CTRL1bits.WIN=1;

      /* 根據(jù)"m"計算出CiRXMmSID 寄存器的地址*/

      maskRegAddr = (unsigned int *)(&C1RXM0SID + (m << 2));

      /* 將屏敝ID寫入到屏蔽寄存器中*/

      if(mide==1) { //擴展幀格式

      eid15_0 = (identifier & 0xFFFF);

      eid17_16= (identifier>>16) & 0x3;

      sid10_0 = (identifier>>18) & 0x7FF;

      *maskRegAddr=(sid10_0)<<5 + 0x8 + eid17_16;

      *(maskRegAddr+2)= eid15_0;

      }else{ // 標(biāo)準(zhǔn)幀格式

      sid10_0 = (identifier & 0x7FF);

      *maskRegAddr=(sid10_0)<<5; *(maskRegAddr+2)=0;

      }



    關(guān)鍵詞: CAN TJA1054 dsPIC33FJ128MC506

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 天水市| 秦皇岛市| 蕉岭县| 正蓝旗| 象山县| 湖口县| 刚察县| 昌平区| 东阿县| 定南县| 陈巴尔虎旗| 余姚市| 乌拉特前旗| 漳平市| 高平市| 武乡县| 普安县| 汽车| 万山特区| 日照市| 襄垣县| 宁国市| 灌云县| 安新县| 永清县| 旬阳县| 漠河县| 万载县| 庆元县| 卫辉市| 巍山| 万载县| 临西县| 信丰县| 安陆市| 谢通门县| 邵武市| 夹江县| 科尔| 绥芬河市| 获嘉县|