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

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

?? mscan.c

?? 基于mc9s08dz60的CAN總線通訊實例源代碼
?? C
字號:
/////////////////////////////////////////////////////////////////////////////////////////
//
// Sample for Freescale EVB9S08DZ60
//
//--------------------------------------------------------------------------------------
//
// This project has been written for CodeWarrior 5.0 for HC(S)08
//
//--------------------------------------------------------------------------------------
//
// Copyright (c) 2006 SofTec Microsystems
// http://www.softecmicro.com/
//
/////////////////////////////////////////////////////////////////////////////////////////

#include "derivative.h" /* include peripheral declarations */
#include "mscan.h"

/////////////////////////////////////////////////////////////////////////////////////////
// MSCANInit
// --------------------------------------------------------------------------------------
// MSCAN Peripheral Initialization
/////////////////////////////////////////////////////////////////////////////////////////
void MSCANInit(void)
{

  char sj,p;
  char t_seg1, t_seg2;

  if (!CANCTL0&0x01)
    // Active MSCAN initialization mode                
    CANCTL0 =0x01;
  // Wait until the MSCAN is in initialization mode  
  while (!CANCTL1&0x01)
    ;    
  sj = (SJW-1)<<6;
  p = (BRP-1);
  
  // Configures SJW and Tq clock Baud Rate Prescaler
  CANBTR0 = (sj|p);
  
  t_seg1 = (TSEG1-1);
  t_seg2 = (TSEG2-1)<<4;
  
  // Configure Time Segment 1 and 2, and one Sample per bit
  CANBTR1 = (t_seg1 | t_seg2);
  
  // Disables all the Filters                                  
  CANIDMR0 = 0xFF;
  CANIDMR1 = 0xFF;
  CANIDMR2 = 0xFF;
  CANIDMR3 = 0xFF;
  CANIDMR4 = 0xFF;
  CANIDMR5 = 0xFF;
  CANIDMR6 = 0xFF;
  CANIDMR7 = 0xFF;
  
  // Enable MSCAN and normal operation and select the oscillator clock as MSCAN clock source
  CANCTL1 = 0x80;
  
  // Active MSCAN Normal Operation
  CANCTL0 = 0x00;
  
  // Wait until the MSCAN operates normally
  while(CANCTL1&0x01)
    ;
  
  // Wait until MSCAN is synchronized to the CAN bus
  while(!(CANCTL0&0x10))
    ;
    
}

/////////////////////////////////////////////////////////////////////////////////////////
// MSCANSendMsg
// --------------------------------------------------------------------------------------
// MSCAN Send Message Routine
/////////////////////////////////////////////////////////////////////////////////////////
Bool MSCANSendMsg(struct can_msg msg)
{

  unsigned char n_tx_buf, i;
  
  // Checks len validity
  if(msg.len > MAX_LEN)
    return(FALSE);

  // Checks synchronization to CAN bus
  if(!(CANCTL0&0x10))
    return(FALSE);

  n_tx_buf = 0;
  do
  {
    // Looks for a free buffer
    CANTBSEL=CANTFLG;
    n_tx_buf=CANTBSEL;
  }while(!n_tx_buf); 
  
  // Write Identifier
  CANTIDR0 = (unsigned char)(msg.id>>3);
  CANTIDR1 = (unsigned char)(msg.id<<5);
  
  if(msg.RTR)
    // RTR=Recessive
    CANTIDR1 |= 0x10;
    
  // Write Data Segment
  for(i = 0; i < msg.len; i++)
    *((&CANTDSR0)+i) = msg.data[i];
    
  // Write Data Length
  CANTDLR = msg.len; 
  
  // Write Priority
  CANTTBPR = msg.prty;
  
  // Clear TXx Flag (buffer ready to transmission)
  CANTFLG = n_tx_buf;
  
  return(TRUE);
  
}

/////////////////////////////////////////////////////////////////////////////////////////
// MSCANGetMsg
// --------------------------------------------------------------------------------------
// MSCAN Get Message Routine
/////////////////////////////////////////////////////////////////////////////////////////
Bool MSCANGetMsg(struct can_msg *msg)
{
  
  unsigned char i;

  // Checks for received messages
  if(!(CANRFLG&0x01))
    return(FALSE);
  
  // Checks if message has standard identifier
  if(CANRIDR1&0x08)
    // IDE = Recessive (Extended Mode)
    return(FALSE);

  // Reads message
  msg->id = (unsigned int)(CANRIDR0<<3) | 
            (unsigned char)(CANRIDR1>>5);
  
  if(CANRIDR1&0x10)
    msg->RTR = TRUE;
  else
    msg->RTR = FALSE;
  
  // Read Data Length 
  msg->len = CANRDLR;
  
  // Read Data Segment
  for(i = 0; i < msg->len; i++)
    msg->data[i] = *((&CANRDSR0)+i);

  // Clear RXF flag (buffer ready to be read)
  CANRFLG = 0x01;
  
  return(TRUE);
    
}

/////////////////////////////////////////////////////////////////////////////////////////
// MSCANCheckRcvdMsg
// --------------------------------------------------------------------------------------
// Verify if a new message is available in the Receiver Buffer Register
/////////////////////////////////////////////////////////////////////////////////////////
Bool MSCANCheckRcvdMsg(void)
{

  // Checks for received messages
  if(CANRFLG&0x01)
    return(TRUE);
  else return(FALSE);
  
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线无精精品入口| 国产亚洲美州欧州综合国| 精品国产亚洲一区二区三区在线观看| 中文欧美字幕免费| 三级影片在线观看欧美日韩一区二区| 国产99久久久国产精品潘金| 欧美群妇大交群的观看方式| 最新日韩在线视频| 国产精品影视在线| 91精品欧美一区二区三区综合在| 亚洲人成伊人成综合网小说| 国产麻豆精品在线| 欧美一区欧美二区| 亚洲福利电影网| 欧美特级限制片免费在线观看| 中文字幕在线不卡视频| 国产专区综合网| 久久综合成人精品亚洲另类欧美| 石原莉奈在线亚洲三区| 欧美视频你懂的| 亚洲国产精品一区二区久久恐怖片| 成人午夜电影网站| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美浪妇xxxx高跟鞋交| 欧美激情综合在线| 国产精品一区二区在线播放| 久久亚洲欧美国产精品乐播 | 亚洲一区在线观看免费观看电影高清| 丁香激情综合国产| 国产三级精品三级| 国产精品一二一区| 国产欧美日韩激情| 成人夜色视频网站在线观看| 国产清纯白嫩初高生在线观看91| 精品在线一区二区三区| 精品嫩草影院久久| 国产乱人伦精品一区二区在线观看| 欧美草草影院在线视频| 精品一区二区三区免费视频| 精品国产一二三区| 国产传媒欧美日韩成人| 国产精品日韩精品欧美在线| eeuss国产一区二区三区| 中文字幕五月欧美| 在线视频国内自拍亚洲视频| 婷婷丁香久久五月婷婷| 欧美丰满一区二区免费视频| 麻豆一区二区99久久久久| 精品国产乱码久久久久久久久| 国产精品亚洲第一区在线暖暖韩国| 久久久五月婷婷| 99久久国产综合色|国产精品| 一区二区三区精密机械公司| 在线不卡一区二区| 精品一区二区在线视频| 国产精品视频在线看| 欧美少妇一区二区| 国产一区视频在线看| 中文字幕综合网| 6080国产精品一区二区| 国产自产v一区二区三区c| 亚洲精品亚洲人成人网| 欧美成人一区二区三区在线观看| 成人性生交大片免费看中文网站| 一区二区三区四区在线免费观看| 欧美高清性hdvideosex| 国产高清一区日本| 亚洲国产精品麻豆| 国产丝袜欧美中文另类| 欧美日韩国产成人在线免费| 成人在线综合网站| 免费精品视频最新在线| 亚洲视频在线观看三级| 日韩欧美在线不卡| 色综合夜色一区| 国产精品91一区二区| 亚洲v日本v欧美v久久精品| 久久精子c满五个校花| 欧美人体做爰大胆视频| 成人涩涩免费视频| 美女在线一区二区| 一区二区不卡在线播放 | 欧美喷潮久久久xxxxx| 成人福利在线看| 韩国精品一区二区| 亚洲成人在线观看视频| 自拍av一区二区三区| 国产欧美视频一区二区三区| 日韩一区二区中文字幕| 在线日韩av片| 成人av网站在线观看| 精东粉嫩av免费一区二区三区| 夜夜嗨av一区二区三区网页| 亚洲国产成人一区二区三区| 日韩欧美自拍偷拍| 91 com成人网| 欧美日韩国产成人在线91| 一本色道**综合亚洲精品蜜桃冫| 国产精品亚洲综合一区在线观看| 免费高清不卡av| 日韩国产欧美在线视频| 亚洲综合清纯丝袜自拍| 亚洲丝袜精品丝袜在线| 中文一区在线播放| 久久久国产综合精品女国产盗摄| 日韩欧美国产精品一区| 91精品欧美综合在线观看最新| 欧美日韩中字一区| 色老综合老女人久久久| 色诱视频网站一区| 97国产一区二区| 99久久精品免费看| www.亚洲激情.com| av色综合久久天堂av综合| 成人黄色av电影| 波多野洁衣一区| 99久久国产综合精品女不卡| eeuss国产一区二区三区| 99久久亚洲一区二区三区青草| 97超碰欧美中文字幕| 色综合久久综合网97色综合| av成人动漫在线观看| 色综合中文字幕| 欧美另类videos死尸| 欧美一区二区三区在线观看视频| 欧美成人官网二区| 久久久久久免费网| 中文字幕一区二区三区四区 | 精品国产乱码久久久久久老虎| 日韩精品一区二区在线| 久久久五月婷婷| 亚洲欧洲日韩女同| 亚洲自拍偷拍av| 美女在线视频一区| 国产高清精品网站| av毛片久久久久**hd| 欧美日韩精品一区二区三区四区 | 一本久道中文字幕精品亚洲嫩| 色中色一区二区| 日韩一区二区在线播放| 久久久三级国产网站| 亚洲女同ⅹxx女同tv| 日韩精品一区第一页| 国产剧情一区二区| 在线观看日韩高清av| 精品日韩在线观看| 亚洲欧洲日韩在线| 麻豆91在线看| 色网站国产精品| 欧美草草影院在线视频| 亚洲欧洲成人av每日更新| 亚洲成av人综合在线观看| 国产乱人伦偷精品视频不卡| 欧洲精品视频在线观看| 久久综合成人精品亚洲另类欧美| 亚洲三级免费电影| 美女在线一区二区| 色偷偷久久一区二区三区| 精品久久久久久无| 亚洲激情六月丁香| 精品无码三级在线观看视频| 在线观看亚洲专区| 久久久久久久久一| 午夜电影一区二区| 99re热这里只有精品免费视频 | 日韩精品一区二区三区在线播放| 国产精品久久综合| 狠狠色2019综合网| 欧美另类videos死尸| 中文字幕亚洲在| 国产成人在线色| 宅男在线国产精品| 一区二区三区免费网站| 国产成人午夜高潮毛片| 欧美一激情一区二区三区| 亚洲精品高清在线观看| 国产**成人网毛片九色 | 日本视频中文字幕一区二区三区| 91丨国产丨九色丨pron| 久久久久综合网| 美日韩黄色大片| 制服丝袜一区二区三区| 亚洲图片一区二区| 99久久久精品| 最新高清无码专区| 国产成人综合亚洲网站| 日韩精品在线网站| 免费在线看成人av| 欧美一区二区三区成人| 午夜视频久久久久久| 欧美亚州韩日在线看免费版国语版| 中文字幕乱码一区二区免费| 韩国v欧美v亚洲v日本v| 日韩欧美亚洲国产另类| 免费精品视频在线| 欧美videos中文字幕| 激情综合网激情| 国产亚洲视频系列| 国产成人精品免费视频网站| 久久久久高清精品|