|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
DS2401加密芯片 讀出錯(cuò)誤數(shù)據(jù) 竟然過了CRC校驗(yàn) 呵呵 概率多大 |
| 作者:IC1008 欄目:單片機(jī) |
讀了錯(cuò)誤的東西出來竟然過了CRC校驗(yàn) 我的主程序 調(diào)用 ReadRS2401ID(); 讀出DS2401的數(shù)據(jù) 因?yàn)樽xDS2401是死循環(huán),CRC失敗就繼續(xù)讀 讀到成功為止 使得讀出錯(cuò)誤數(shù)據(jù)的一個(gè)東西 出現(xiàn)了 我沒有關(guān)中斷 呵呵 沒有關(guān)中斷的讀數(shù)據(jù)錯(cuò)誤,然后讀CRC的數(shù)據(jù)又錯(cuò)誤,或者幾個(gè)數(shù)據(jù)的錯(cuò)誤使得CRC又正確了,導(dǎo)致讀出數(shù)據(jù)成功 但是是錯(cuò)誤的數(shù)據(jù) 所以我才覺得我的程序進(jìn)入時(shí)候有一段跟平常不一致的停頓,想必是等待錯(cuò)挫得對(duì)的CRC數(shù)據(jù) 屏蔽了中斷之后一切正常 //DS2401.c unsigned CHAR DS2401IDBuf[8]; unsigned CHAR InitDS2401(void) //復(fù)位DS2401 { unsigned CHAR tmp; DS2401_1; tmp=DS2401RD; if(!tmp) return 0; DS2401_0; delay_us(250); delay_us(250); DS2401_1; delay_us(60); tmp=DS2401RD; delay_us(210); delay_us(210); if(tmp) return 0; else return 1; } void WriteDS2401(unsigned CHAR d) //寫2401命令 { unsigned CHAR i; for(i=0;i<8;i++) { DS2401_0; delay_us(12); if(d&1) { DS2401_1; } d>>=1; delay_us(80); DS2401_1; delay_us(4); } } unsigned CHAR ReadDS2401() //讀2401數(shù)據(jù) { unsigned CHAR i,d; for(i=0;i<8;i++) { d>>=1; DS2401_0; delay_us(5); DS2401_1; delay_us(10); if(DS2401RD) d|=0x80; delay_us(105); } return d; } unsigned CHAR crctest() //進(jìn)行CRC校驗(yàn) { unsigned CHAR i1,i2,crc=0; for(i1=0;i1<8;i1++) { crc^=DS2401IDBuf[i1]; for(i2=0;i2<8;i2++) { if (crc & 0x01) crc = (crc >> 1) ^ 0x8C; else crc >>= 1; } } return crc; } void ReadRS2401ID() //讀出DS2401的 { unsigned CHAR i; do{ while(!InitDS2401()) WDR(); WriteDS2401(0x33); for(i=0;i<8;i++) DS2401IDBuf[i]=ReadDS2401(); }while(crctest()); //直到CRC校驗(yàn)成功 } |
| 2樓: | >>參與討論 |
| 作者: 千尋喬子 于 2006/12/19 12:23:00 發(fā)布:
DS2401加密芯片 讀出錯(cuò)誤數(shù)據(jù) 竟然過了CRC校驗(yàn) 呵呵 概率多大 我是ATMEL芯片的一級(jí)代理,我是喬小姐希望可以幫助到你,我也做DALLAS的原裝貨,我電話:13713758355,QQ:499340587 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |