求助 IIC 從機的 CKP 無法置 1 ,鎖死了SCL時鐘
|
||||
---|---|---|---|---|
新會員
|
用pic16f690做從機,当用地线短路干擾 SDA或SCL口时,有时從機的SCL位就拉死在低电平了,主機一直报BCLIF衝突,
從機程序的主循环也一直进入下面這個判斷的 else 里面。请问大家怎么才能退出這種狀況,将CKP置1啊? while(1) { if(CKP) { //判斷CKP狀態,没问题则高频闪灯 if(!flag2) { LED =~LED; flag2=80; } } else //有問題低频闪灯,初始化似乎還是,時鐘被鎖,CKP为0,主机BCLIF { GIE = 0; CKP = 1; jj = 0xefff; while(--jj); LED = 0; jj = 0xefff; while(--jj); LED = 1; jj = 0xefff; while(--jj); InitSYS(); } } 爲什麽會發生這種無法置位的情況啊,led灯的表現就是程序進入了下面那个 CKP = 0 的判斷了。
發表於: 2008/3/27 17:19
|
|||
|