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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? can81c9x.c

?? CAN總線傳輸及液晶顯示文章
?? C
字號:
//****************************************************************************
// @Module        Standalone Full-CAN Controller SAE 81C90/1
// @Filename      CAN80C9x.C
// @Project       Hands on Training for the kitCON CAN/LCD Module
//----------------------------------------------------------------------------
// @Controller    Siemens C16x
//
// @Compiler      Tasking C166 V5.0
//                Keil C166 V3.00
//
// @Author        Michael Knese
//
// @Description   This file contains all functions that use the CAN Controller 
//                SAE 81C90 and SAE 81C91 of the kitCON CAN-LCD Module of 
//                PHYTEC
//                CAN Controller Number 0 = SAE 81C91
//                CAN Controller Number 1 = SAE 81C90
//
//----------------------------------------------------------------------------
// @Date          12/08/98 12:44:55 PM
//
//****************************************************************************

//****************************************************************************
// @Project Includes
//****************************************************************************

#include "MAIN.H"


// USER CODE BEGIN (CAN81C9x_General,1)

// USER CODE END


//***************************************************************************
// @Global Variables
//***************************************************************************

// USER CODE BEGIN (CAN81C9x_General,2)

// USER CODE END




//****************************************************************************
// @Function      void CAN81C9x_vInit90(void)
//
//----------------------------------------------------------------------------
// @Description   This function initializes the CAN 81c90 component. It effects all
//                necessary configurations of the SFR, depending on the selected
//                operating mode. 
//
//----------------------------------------------------------------------------
// @Returnvalue   none
//
//----------------------------------------------------------------------------
// @Parameters    none
//
//----------------------------------------------------------------------------
// @Date          11/16/98 12:44:55 PM
//
//****************************************************************************

void CAN81C9x_vInit90(void)
{

  //  -------------- CAN Mode/Status Register ---------------
  //  start the initialization of the CAN Module
  CAN_CON[1].MOD   = 0x001;

  //  -------------- Output-Control Register ----------------
  //  Output Mode:  Normal Mode
  //  TX0: The Output is driven directly with CAN data
  //       The high and low side transistor T0P/T0N are enable
  //  TX1: The Output is driven directly with CAN data
  //       The high and low side transistor T1P/T1N are enable
  CAN_CON[1].OC    = 0x0D8;

  //  --------------- CAN Control Register ------------------
  CAN_CON[1].CTRL  = 0x000;

  //  ---------------- Interrupt Register -------------------
  CAN_CON[1].INT   = 0x000;  //reset all interrupt request bits
  CAN_CON[1].IMSK  = 0x000;  //no interrupts (Interrupt mask register) 
  
  CAN_CON[1].RRR1  = 0x000;  //reset receive-Ready Register
  CAN_CON[1].RRR2  = 0x000;  //        -"-
  CAN_CON[1].RIMR1 = 0x000;  //disable all receive Bits (Receive-Interrupt -Mask Register)
  CAN_CON[1].RIMR2 = 0x000;

  ///  ------------ Bit Timing Register ---------------------
  /// baudrate =  100.000 KBaud
  /// there are 5 time quanta before sample point
  /// there are 4 time quanta after sample point
  /// the (re)synchronization jump width is 2 time quanta 
  CAN_CON[1].BL1   = 0x034;
  CAN_CON[1].BL2   = 0x041;
  CAN_CON[1].BRPR  = 0x009;


  //  ------------- Port Control Register -------------------
  CAN_CON[1].Port[0].PDR = 0x0FF;  //Port Direction Register (direction is output)
  CAN_CON[1].Port[0].LR  = 0x0FF;  //Port Latch Register ()



  //  ================== Descriptor Registers ===============

  //  Message-Object 0
  CAN_CON[1].DR[0].H  = 0;
  CAN_CON[1].DR[0].L  = 0;

  //  Message-Object 1
  //   This message operates as a data frame
  //   Identifier = 0x7
  CAN_CON[1].DR[1].H  = 0;	      //
  CAN_CON[1].DR[1].L  = 0x0E1;        // 

  CAN_CON[1].MsgObj[1].Data[7] = 0xAA;   // set data byte 7
  CAN_CON[1].MsgObj[1].Data[6] = 0x11;   // set data byte 6
  CAN_CON[1].MsgObj[1].Data[5] = 0x22;   // set data byte 5
  CAN_CON[1].MsgObj[1].Data[4] = 0x33;   // set data byte 4
  CAN_CON[1].MsgObj[1].Data[3] = 0x44;   // set data byte 3
  CAN_CON[1].MsgObj[1].Data[2] = 0x55;   // set data byte 2
  CAN_CON[1].MsgObj[1].Data[1] = 0x66;   // set data byte 1
  CAN_CON[1].MsgObj[1].Data[0] = 0x77;   // set data byte 0


  //  Message-Object 2-15
  CAN_CON[1].DR[2].H  = 0;
  CAN_CON[1].DR[2].L  = 0;

  CAN_CON[1].DR[3].H  = 0;
  CAN_CON[1].DR[3].L  = 0;

  CAN_CON[1].DR[4].H  = 0;
  CAN_CON[1].DR[4].L  = 0;
		  
  CAN_CON[1].DR[5].H  = 0;
  CAN_CON[1].DR[5].L  = 0;

  CAN_CON[1].DR[6].H  = 0;
  CAN_CON[1].DR[6].L  = 0;
     
  CAN_CON[1].DR[7].H  = 0;
  CAN_CON[1].DR[7].L  = 0;

  CAN_CON[1].DR[8].H  = 0;
  CAN_CON[1].DR[8].L  = 0;

  CAN_CON[1].DR[9].H  = 0;
  CAN_CON[1].DR[9].L  = 0;

  CAN_CON[1].DR[10].H  = 0;
  CAN_CON[1].DR[10].L  = 0;

  CAN_CON[1].DR[11].H  = 0;
  CAN_CON[1].DR[11].L  = 0;

  CAN_CON[1].DR[12].H  = 0;
  CAN_CON[1].DR[12].L  = 0;

  CAN_CON[1].DR[13].H  = 0;
  CAN_CON[1].DR[13].L  = 0;

  CAN_CON[1].DR[14].H  = 0;
  CAN_CON[1].DR[14].L  = 0;

  CAN_CON[1].DR[15].H  = 0;
  CAN_CON[1].DR[15].L  = 0;


  /// ------------ CAN Control/Status Register --------------
  //  reset INIT
  //  ...
  CAN_CON[1].MOD       = 0x000;



  // USER CODE BEGIN (CAN81C9x_Init90,1)

  // USER CODE END

}





//****************************************************************************
// @Function      void CAN81C9x_vInit91(void)
//
//----------------------------------------------------------------------------
// @Description   This function initializes the CAN 81C91 component. It effects all
//                necessary configurations of the SFR, depending on the selected
//                operating mode. 
//
//----------------------------------------------------------------------------
// @Returnvalue   none
//
//----------------------------------------------------------------------------
// @Parameters    none
//
//----------------------------------------------------------------------------
// @Date          11/16/98 12:44:55 PM
//
//****************************************************************************

void CAN81C9x_vInit91(void)
{

  //  -------------- CAN Mode/Status Register ---------------
  //  start the initialization of the CAN Module
  CAN_CON[0].MOD   = 0x001;

  //  -------------- Output-Control Register ----------------
  //  Output Mode:  Normal Mode
  //  TX0: The Output is driven directly with CAN data
  //       The high and low side transistor T0P/T0N are enable
  //  TX1: The Output is driven directly with CAN data
  //       The high and low side transistor T1P/T1N are enable
  CAN_CON[0].OC    = 0x0D8;

  //  --------------- CAN Control Register ------------------
  CAN_CON[0].CTRL  = 0x000;

  //  ---------------- Interrupt Register -------------------
  CAN_CON[0].INT   = 0x000;  //reset all interrupt request bits
  CAN_CON[0].IMSK  = 0x001;  //enable Receive Interrupt (Interrupt mask register)    <====

  CAN_CON[0].RRR1  = 0x000;  //reset receive-Ready Register
  CAN_CON[0].RRR2  = 0x000;  //        -"-
  CAN_CON[0].RIMR1 = 0x002;  //enable receive Bit Message 1 (Receive-Interrupt-Mask Register)
  CAN_CON[0].RIMR2 = 0x000;

  ///  ------------ Bit Timing Register ---------------------
  /// baudrate =  100.000 KBaud
  /// there are 5 time quanta before sample point
  /// there are 4 time quanta after sample point
  /// the (re)synchronization jump width is 2 time quanta 
  CAN_CON[0].BL1   = 0x034;
  CAN_CON[0].BL2   = 0x041;
  CAN_CON[0].BRPR  = 0x009;

  

  //  ================== Descriptor Registers ===============
 
  //  Message-Object 0
  CAN_CON[0].DR[0].H = 0;
  CAN_CON[0].DR[0].L = 0;

  //  Message-Object 1
  //   This message operates as a data frame
  //   Identifier = 0x7
  CAN_CON[0].DR[1].H = 0;
  CAN_CON[0].DR[1].L = 0x0E8;  




  //  Message-Object 2-15
  CAN_CON[0].DR[2].H = 0;
  CAN_CON[0].DR[2].L = 0;

  CAN_CON[0].DR[3].H = 0;
  CAN_CON[0].DR[3].L = 0;

  CAN_CON[0].DR[4].H = 0;
  CAN_CON[0].DR[4].L = 0;

  CAN_CON[0].DR[5].H = 0;
  CAN_CON[0].DR[5].L = 0;

  CAN_CON[0].DR[6].H = 0;
  CAN_CON[0].DR[6].L = 0;
     
  CAN_CON[0].DR[7].H = 0;
  CAN_CON[0].DR[7].L = 0;
		 
  CAN_CON[0].DR[8].H = 0;
  CAN_CON[0].DR[8].L = 0;

  CAN_CON[0].DR[9].H = 0;
  CAN_CON[0].DR[9].L = 0;

  CAN_CON[0].DR[10].H = 0;
  CAN_CON[0].DR[10].L = 0;

  CAN_CON[0].DR[11].H = 0;
  CAN_CON[0].DR[11].L = 0;

  CAN_CON[0].DR[12].H = 0;
  CAN_CON[0].DR[12].L = 0;

  CAN_CON[0].DR[13].H = 0;
  CAN_CON[0].DR[13].L = 0;

  CAN_CON[0].DR[14].H = 0;
  CAN_CON[0].DR[14].L = 0;

  CAN_CON[0].DR[15].H = 0;
  CAN_CON[0].DR[15].L = 0;


  /// ------------ CAN Control/Status Register --------------
  //  reset INIT
  //  ...
  CAN_CON[0].MOD      = 0x000;




  // USER CODE BEGIN (CAN81C9x_Init91,1)

  // USER CODE END

}





//****************************************************************************
// @Function      void CAN81C9x_vInit(void)
//
//----------------------------------------------------------------------------
// @Description   This function initializes the kitCON CAN component. It effects all
//                necessary configurations of the SFR, depending on the selected
//                operating mode. The configuration determines whether the CAN
//                interrupts are to be released, and the priority of the 
//                released interrupt.
//
//----------------------------------------------------------------------------
// @Returnvalue   none
//
//----------------------------------------------------------------------------
// @Parameters    none
//
//----------------------------------------------------------------------------
// @Date          12/7/98 5:47:05 PM
//
//****************************************************************************

void CAN81C9x_vInit(void)
{

 // initializes the CAN peripheral 81C90
  CAN81C9x_vInit90();

  // initializes the CAN peripheral 81C91
  CAN81C9x_vInit91();



  // USER CODE BEGIN (CAN81C9x_Init,1)

  // USER CODE END

}



//****************************************************************************
// @Function      void CAN_vTransmit(ubyte ObjNr)
//
//----------------------------------------------------------------------------
// @Description   This function triggers the CAN controller to send the 
//                selected message.
//                If the selected message object operates as a DATA FRAME then 
//                this function triggers the sending of a data frame.
//                If however the selected message object operates as a REMOTE 
//                FRAME this function triggers the sending of a remote frame.
//
//----------------------------------------------------------------------------
// @Returnvalue   none
//
//----------------------------------------------------------------------------
// @Parameters    Number of the CAN - Controller (0-1)
// @Parameters    Number of the message object to be sent (0-15)
//
//----------------------------------------------------------------------------
// @Date          12/7/98 5:47:05 PM
//
//****************************************************************************

void CAN81C9x_vTransmit(ubyte ConNr, ubyte ObjNr)
{
  uword uwTRS;

  uwTRS = 0x1 << ObjNr;

  CAN_CON[ConNr].TRSR2 = (uwTRS >> 8);
  CAN_CON[ConNr].TRSR1 = (uwTRS & 0x00FF);

}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自在欧美一区| 精品毛片乱码1区2区3区| 久久精品视频免费观看| 成人黄色小视频在线观看| 中文字幕亚洲区| 色综合久久66| 激情综合一区二区三区| 欧美三级视频在线播放| 韩国av一区二区| 一区二区三区色| 色94色欧美sute亚洲线路二| 国产精品三级av| 亚洲综合丁香婷婷六月香| 一区二区视频在线| 国产一区91精品张津瑜| 欧美久久久一区| 中文字幕一区日韩精品欧美| 麻豆成人在线观看| 日本不卡的三区四区五区| 91丨porny丨最新| 国产精品久久精品日日| 精品一区二区影视| 99国产精品国产精品毛片| 日韩午夜激情电影| 麻豆精品蜜桃视频网站| 欧美日韩亚洲综合一区二区三区 | 久久久不卡网国产精品一区| 亚洲欧美在线另类| 麻豆极品一区二区三区| 国产精品久久久久久久久果冻传媒| 色综合久久久久综合体| 亚洲444eee在线观看| 欧美一区二区三区在线看| 99精品国产视频| 国模一区二区三区白浆| 五月天亚洲婷婷| 精品视频一区三区九区| 制服丝袜在线91| 亚洲国产精品欧美一二99| 国产精品久久久久久久第一福利 | 最近中文字幕一区二区三区| 日韩精品中文字幕一区二区三区| 欧美性受极品xxxx喷水| 狠狠色丁香久久婷婷综合_中| 亚洲一线二线三线久久久| 中文字幕乱码一区二区免费| 欧美不卡视频一区| xnxx国产精品| 日韩精品一区二区三区三区免费 | 色屁屁一区二区| 国产美女娇喘av呻吟久久| 另类小说图片综合网| 日本aⅴ亚洲精品中文乱码| 亚洲综合激情小说| 午夜精品一区二区三区三上悠亚| 一区二区三区日韩欧美精品| 国产精品沙发午睡系列990531| 国产日产欧美一区| 国产欧美一区二区精品婷婷| 国产午夜亚洲精品羞羞网站| 欧美一区二区视频在线观看2022| 日韩影院免费视频| 99精品国产91久久久久久| 肉丝袜脚交视频一区二区| 国产精品久久三| 欧美人伦禁忌dvd放荡欲情| 日精品一区二区三区| 国产精品毛片久久久久久久| 欧美精品黑人性xxxx| 日韩国产精品久久| 亚洲综合在线观看视频| 狠狠久久亚洲欧美| 日韩区在线观看| 久久夜色精品国产欧美乱极品| 日韩欧美国产综合在线一区二区三区 | 日韩欧美专区在线| 国产在线国偷精品产拍免费yy| 亚洲精品国产一区二区精华液| 久久网站热最新地址| 4438x亚洲最大成人网| 一区二区三区av电影| 成人精品一区二区三区四区 | 岛国一区二区在线观看| 亚洲色图视频网| 国产精品欧美久久久久一区二区| 日韩精品一区二| 欧美亚洲国产怡红院影院| 色综合久久综合网| 欧美日韩免费视频| 亚洲欧美在线视频| 久久美女高清视频| 亚洲综合视频网| 久久女同性恋中文字幕| 欧美日韩情趣电影| 久久男人中文字幕资源站| 国产精品久久久久久久久图文区| 一区二区免费看| 久久综合九色综合欧美就去吻| 中文字幕亚洲欧美在线不卡| 丝袜国产日韩另类美女| 国产麻豆精品在线| 亚洲自拍偷拍欧美| 亚洲大片免费看| 91官网在线观看| 日韩高清不卡一区| 久久久久久一级片| 欧美在线视频全部完| 天堂在线亚洲视频| 国产精品女主播在线观看| 色久优优欧美色久优优| 婷婷亚洲久悠悠色悠在线播放| 亚洲成人自拍一区| 中文字幕成人av| 国产日韩欧美一区二区三区综合| 亚洲美女在线国产| 日韩久久久精品| 成人久久视频在线观看| 日日夜夜精品视频天天综合网| 精品国产污网站| 3d成人h动漫网站入口| 久久99在线观看| 欧美韩日一区二区三区四区| 欧美在线观看一二区| 国产一区二区精品在线观看| 亚洲最大成人网4388xx| 国产日韩成人精品| 色综合激情久久| 99视频在线精品| 国产精品一区二区久久精品爱涩| 午夜免费欧美电影| 国产精品国产三级国产aⅴ入口 | 久久久久久久性| 日韩欧美你懂的| 91精品中文字幕一区二区三区| 蜜臀av一区二区在线免费观看 | 精品日产卡一卡二卡麻豆| 91精品在线一区二区| 欧美日本在线看| 3d动漫精品啪啪1区2区免费 | 国产精品一级片| 国产成人午夜电影网| 韩国女主播一区| 久久se精品一区精品二区| 日韩欧美中文字幕制服| 国产美女久久久久| 亚洲va欧美va天堂v国产综合| 在线观看欧美黄色| 天堂精品中文字幕在线| 精品精品国产高清a毛片牛牛| 国产精品99久久久久久宅男| 欧美电影一区二区| 91伊人久久大香线蕉| 国产精品系列在线| 91福利视频久久久久| 日韩电影在线观看网站| 久久一留热品黄| 欧美日韩免费在线视频| 国模少妇一区二区三区| 午夜精品久久久久久久蜜桃app| 日本美女一区二区| 99精品国产热久久91蜜凸| 国产aⅴ综合色| 亚洲成人激情自拍| 亚洲精品免费一二三区| 欧美日韩一区久久| 日本欧美在线观看| 亚洲色图.com| 国产日韩v精品一区二区| 国产午夜亚洲精品理论片色戒| jizzjizzjizz欧美| 亚洲精品ww久久久久久p站| 日韩影院免费视频| 欧美国产日韩一二三区| av一二三不卡影片| 国模大尺度一区二区三区| 日韩精品福利网| 17c精品麻豆一区二区免费| 欧美精品乱码久久久久久按摩| 床上的激情91.| 黄色资源网久久资源365| 伊人开心综合网| 中文字幕在线观看不卡| 国产免费成人在线视频| 精品福利一二区| 在线观看日韩av先锋影音电影院| 成人精品国产福利| 久久aⅴ国产欧美74aaa| 日本vs亚洲vs韩国一区三区二区| 欧美午夜宅男影院| 亚洲综合色婷婷| 欧美无乱码久久久免费午夜一区 | 国产精品天干天干在观线| 久久精品国产999大香线蕉| 欧美系列在线观看| 国产精品一区二区黑丝| 亚洲二区视频在线| 久久亚洲一级片| 亚洲色图清纯唯美| 亚洲视频每日更新| 亚洲地区一二三色|