|
編譯報(bào)錯(cuò)是void delayNop()后面少了個(gè)分號(hào)
result = (bit)(P0&0x80)這樣寫(xiě)也不好.
如果P0作為輸入口.
應(yīng)寫(xiě)為
result = P0>>7;
尤其是當(dāng)P0位輸出口時(shí),可能輸出是1,但是接在IO口上的負(fù)載電阻如果小于內(nèi)部上拉電阻,會(huì)造成將整個(gè)IO口電位拉低,這時(shí)候你再去讀者個(gè)IO口,很有可能讀出來(lái)的是0.這問(wèn)題可以通過(guò)編譯,但是一旦影響程序運(yùn)行排查起來(lái)會(huì)比較費(fèi)時(shí).
作為輸出口,建議這樣操作
U8 TEMP; //建立一個(gè)變量用于緩沖
BIT FLAG; //標(biāo)志位
TEMP = 0xXX; //TEMP賦值
P0 = TEMP; //TEMP的值再賦予 P0
/*P0賦值后,當(dāng)需要查詢(xún)P0具體一位的值,只需要在P0再次賦值前,查詢(xún)TEMP 相應(yīng)的位即可*/
FLAG = TEMP>>n ; (n=0--7)n值取決于你想FLAG等于TEMP的那一位
|
評(píng)分
-
查看全部評(píng)分
|