freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(論文)-基于can總線的數(shù)據(jù)采集器的開發(fā)-資料下載頁

2025-06-28 11:16本頁面
  

【正文】 。 /* 訪問地址指向模式寄存器 */tempdata=*SJA_Adr。 /* 保存初始值 */*SJA_Adr =tempdata|0x09。 /* 置位復(fù)位請求,選擇單濾波方式 */if((*SJA_Adramp。0x09)= =0x09)return 0。 /* 校驗寫入值 */else return 1。}3. SJA1000進(jìn)入工作模式bit enter_runmodel(void){unsigned char data tempdata。SJA_Adr =MODE_REG。 /* 訪問地址指向模式寄存器 */tempdata=*SJA_Adr。 /* 保存初始值 */*SJA_Adr =tempdata|0xfe。 /* 清除復(fù)位請求 */if((*SJA_Adramp。0x01)= =0)return 0。 /* 校驗寫入值 */else return 1。}4. SJA1000波特率設(shè)置(晶振頻率為24MHZ)假設(shè)現(xiàn)需要將波特率設(shè)置為100Kbps,則當(dāng)總線定時寄存器BTR0=0xce,BTR1=0xa3時,系統(tǒng)時鐘TSCL=2*(1/24M)*(8+4+2+1)=5/4M,相位緩沖段TSEG1=TSCL*(2+1+1)=4*TSCL,TSEG2=TSCL*(2+1)=3*TSCL,位時間T=(4+3+1)TSCL,波特率f=1/T=100Kbps。程序清單如下:define BTR0_REG 0x8006 /* 總線定時寄存器0地址 */define BTR1_REG 0x8007 /* 總線定時寄存器1地址 */bit set_bandrate(void){SJA_Adr =BTR0_REG。 /* 訪問地址指向總線定時寄存器0 */*SJA_Adr =0xce。 /* 寫入預(yù)設(shè)值 */if(*SJA_Adr!=0xce)return 1。 /* 校驗寫入值 */SJA_Adr =BTR1_REG。 /* 訪問地址指向總線定時寄存器1 */*SJA_Adr =0xa3。 /* 寫入預(yù)設(shè)值 */if(*SJA_Adr!=0xa3)return 1。 /* 校驗寫入值 */else retrun 0。}5. 設(shè)置時鐘分頻寄存器define CDR_REG 0x801f /* 時鐘分頻寄存器地址 */bit set_clkout(void){unsigned char data tempdata。SJA_Adr =CDR_REG。 /* 訪問地址指向時鐘分頻寄存器 */tempdata=*SJA_Adr。 /* 保存初始值 */*SJA_Adr =tempdata|0x80。 /* 選擇PeilCAN模式 */if((*SJA_Adramp。0x80)= =0)return 1。 /* 校驗寫入值 */tempdata=*SJA_Adr。 /* 保存初始值 */*SJA_Adr =tempdataamp。0xf8。 /* CLKOUT腳二分頻輸出 */if((*SJA_Adramp。0x07)!=0)return 1。 /* 校驗寫入值 */else return 0。}6. 設(shè)置輸出控制寄存器define OCR_REG 0x8008 /* 輸出控制寄存器地址 */bit set_outcontrol(unsigned char data out_control){SJA_Adr =OCR_REG。 /* 訪問地址指向輸出控制寄存器 */*SJA_Adr =outcontrol。 /* 寫入?yún)?shù) */if(*SJA_Adr = =outcontrol)return 0。 /* 校驗寫入值 */else return 1。}7. 設(shè)置SJA1000驗收代碼寄存器和驗收屏蔽寄存器選擇標(biāo)準(zhǔn)幀格式的單濾波技術(shù),只需設(shè)置4B濾波器的前2B。程序清單如下:define ACR0_REG 0x8010 /* 驗收代碼寄存器0地址 */define AMR0_REG 0x8014 /* 驗收屏蔽寄存器0地址 */bit set_object(unsigned char data *ACRptr,unsigned char data *AMRptr){SJA_Adr =ACR0_REG。 /* 訪問地址指向驗收代碼寄存器0 */*SJA_Adr =*ACRptr。 /* 寫入?yún)?shù)到驗收代碼寄存器的第1個字節(jié) */if(*SJA_Adr!=*ACRptr)return 1。 /* 校驗寫入值 */SJA_Adr++。 /* 訪問地址指向驗收代碼寄存器1 */ACRptr++。 /* 參數(shù)地址加1 */*SJA_Adr =*ACRptr。 /* 寫入?yún)?shù)到驗收代碼寄存器的第2個字節(jié) */if(*SJA_Adr!=*ACRptr)return 1。 /* 校驗寫入值 */SJA_Adr =AMR0_REG。 /* 訪問地址指向驗收屏蔽寄存器0 */*SJA_Adr =*AMRptr。 /* 寫入?yún)?shù)到驗收屏蔽寄存器的第1個字節(jié) */if(*SJA_Adr!=*AMRptr)return 1。 /* 校驗寫入值 */SJA_Adr++。 /* 訪問地址指向驗收屏蔽寄存器1 */AMRptr++。 /* 參數(shù)地址加1 */*SJA_Adr =*AMRptr。 /* 寫入?yún)?shù)到驗收屏蔽寄存器的第2個字節(jié) */if(*SJA_Adr!=*AMRptr)return 1。 /* 校驗寫入值 */else return 0。}8. 發(fā)送數(shù)據(jù)選擇標(biāo)準(zhǔn)幀格式,只需用到13B發(fā)送緩沖器的前11B程序清單如下:define SR_REG 0x8002 /* 狀態(tài)寄存器地址 */define TXB_REG 0x8060 /* 發(fā)送緩沖器首地址 */define CMR_REG 0x8001 /* 命令寄存器地址 */bit data_tx(unsigned char data *senddatabuffer){unsigned char data tempdata,count=0x0B。 /* 發(fā)送緩沖區(qū)的字節(jié)數(shù) */SJA_Adr =SR_REG。 /* 訪問地址指向狀態(tài)寄存器 */if((*SJA_Adramp。0x08)= =0)return 1。 /* 判斷上一次發(fā)送是否完畢 */if((*SJA_Adramp。0x04)= =0)return 1。 /* 判斷發(fā)送緩沖器是否被鎖定 */SJA_Adr =TXB_REG。 /* 訪問地址指向發(fā)送緩沖器0 */if((senddatabuffer[0]amp。0x40)!=0)count=count8。 /* 判斷是遠(yuǎn)程幀還是數(shù)據(jù)幀,RTR=1,說明是遠(yuǎn)程幀,無數(shù)據(jù)場,字節(jié)數(shù)減8 */for(。count0。count,senddatabuffer++, SJA_Adr++){* SJA_Adr =*senddatabuffer。 /* 寫入待發(fā)送的數(shù)據(jù) */if(*SJA_Adr!=*senddatabuffer)return 1。 /* 校驗寫入值 */}SJA_Adr =CMR_REG。 /* 訪問地址指向命令寄存器 */tempdata=* SJA_Adr。 /* 保存初始值 */* SJA_Adr =tempdata|0x01。 /* 使SJA1000啟動發(fā)送 */if((*SJA_Adramp。0x01)= =0)return 1。 /* 校驗寫入值 */else return 0。}9. 接收數(shù)據(jù)選擇標(biāo)準(zhǔn)幀格式,只需用到13B接收緩沖器的前11B程序清單如下:bit data_rx(unsigned char data *receivedatabuffer){unsigned char data tempdata,count=0x0B。 /* 接收緩沖區(qū)的字節(jié)數(shù) */SJA_Adr=SR_REG。 /* 訪問地址指向狀態(tài)寄存器 */if((*SJA_Adramp。0x01)= =0)return 1。 /* 判斷是否有有效的報文 */SJA_Adr=RXB_REG。 /* 訪問地址指向接收緩沖器0 */if((*SJA_Adramp。0x40)= =0)count=count8。 /* 判斷是遠(yuǎn)程幀還是數(shù)據(jù)幀,RTR=1,說明是遠(yuǎn)程幀,無數(shù)據(jù)場,字節(jié)數(shù)減8*/for(。count0。count,receivedatabuffer++, SJA_Adr++){*receivedatabuffer =* SJA_Adr。 /* 讀入待接收的數(shù)據(jù) */if(*SJA_Adr!=*receivedatabuffer)return 1。 /* 校驗讀出值 */}SJA_Adr =CMR_REG。 /* 訪問地址指向命令寄存器 */tempdata=* SJA_Adr。 /* 保存初始值 */* SJA_Adr =tempdata|0x04。 /* 釋放RXFIFO內(nèi)存空間 */if((*SJA_Adramp。0x04)= =0)return 1。 /* 校驗寫入值 */else return 0。}
點擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1