|
C18 function 傳值問題
|
|
高級會員
|
先進好, 最近有空 把assembly 寫的 project 改成c 的.. 不過 遇到了些小問題 我的nand_ale(0x01); 這樣傳入時.. 會出錯,我在nand_ale的開頭設breakpoint 發現.. 0x01 進去變 0xFE ... 請問題什麼地方有問題呢? 感謝。
忽然發現原因了.. 因為我都把 bsf f,d,a 的 a 設成 0 ,改成 1 就行了...
不過 還是有點模糊,能請先進解說一下 因為爬了許多文章,上面都說 c 好像會自已切換 bank 所以我 都設 0 不管那麼多,原來還是有影響? 能請先進解說一下 a 為0 與 1 的使用時機嗎?
void nand_ale(unsigned char); //protype
void nand_ale(unsigned char sel){ switch(sel){ case 0: _asm bcf NAND_ALE,0 _endasm break; case 1: _asm bsf NAND_ALE,0 _endasm break; default: _asm bcf NAND_ALE,0 _endasm break; } }
因為是0xFE所以每次都執行 default 那一段.... 想不出原因,請先進解答。
發表於: 2006/6/5 18:24
|
|