Re: C18 function 傳值問題
|
||||
---|---|---|---|---|
版主
|
C18 的堆疊指標設定是可以改變的,但它不可以跨越不同的BANK,參數的傳遞也可以不要用堆疊傳送,透過 Project 裡 C18 的 option 選項 將storage class設為 static 即可。
發表於: 2006/6/6 11:48
|
|||
|
Re: C18 function 傳值問題
|
||||
---|---|---|---|---|
高級會員
|
看來我自已都搞混了,傳值真的會有問題,
請問是那裡有誤呢? 我建立了很多這種類型的function void nand_ale(unsigned char); //protype function 傳入也都寫成 sel , 不過就是 進來的值會有誤,請先進賜教。 void nand_ale(unsigned char sel){ ................ }
發表於: 2006/6/6 10:47
|
|||
|
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
|
|||
|