|
|||||||||||
| 技術(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 |
PICC的局部變量參數(shù)傳遞問(wèn)題. |
| 作者:openopen 欄目:單片機(jī) |
CHAR tran(CHAR xx) { #asm incf_xx movf_xx,w #endasm return xx; } 為什么 movf_xx,w 有錯(cuò)?編譯不過(guò). 去掉movf_xx,w 但xx 返回原值. |
| 2樓: | >>參與討論 |
| 作者: openopen 于 2003/11/26 11:16:00 發(fā)布:
寫錯(cuò) 以上寫錯(cuò)了, CHAR tran(CHAR xx) { #asm incf_tran movf_tran,w #endasm return xx; } 為什么 movf_tran,w 有錯(cuò)?編譯不過(guò). 去掉movf_tran,w 但xx 返回原值. |
|
| 3樓: | >>參與討論 |
| 作者: xilinxer 于 2003/11/26 11:39:00 發(fā)布:
是不是 W 不認(rèn)識(shí)!誰(shuí)邊說(shuō)說(shuō)! |
|
| 4樓: | >>參與討論 |
| 作者: openopen 于 2003/11/26 12:04:00 發(fā)布:
no 如果 yy是全局變量 incf_yy movf_yy,w 編譯通過(guò). 返回yy值正確. |
|
| 5樓: | >>參與討論 |
| 作者: eeproom 于 2003/11/26 14:35:00 發(fā)布:
compiler,please.i can passed,are you? /// TEST program #include <pic.h> CHAR tran(CHAR xx); void main(void) { CHAR dd; dd=tran(0x01); asm("\tnop"); while(1){;} } CHAR tran(CHAR xx) { #asm incf_tran movf_tran,w #endasm return xx; } |
|
| 6樓: | >>參與討論 |
| 作者: openopen 于 2003/11/26 16:19:00 發(fā)布:
why? 原本用8.02 PL1 現(xiàn)用8.01 PL3 + MPLAB IDE V6.40編譯你的TEST program 錯(cuò)誤不一樣了!! Executing: "C:\HT-PIC\BIN\PICC.EXE" -C -E"TEST2.cce" "TEST2.c" -O"TEST2.obj" -Q -MPLAB -16F84A Error[000] 0 : Bad format for -P option Halting build on first failure as requested. BUILD FAILED: Wed Nov 26 16:03:32 2003 :WHY?? |
|
| 7樓: | >>參與討論 |
| 作者: openopen 于 2003/11/26 17:26:00 發(fā)布:
完了.PICC不能用了. Deleting intermediary files... done. Executing: "C:\HT-PIC\BIN\PICC.EXE" -C -E"test2.cce" "test2.c" -O"test2.obj" -Q -MPLAB -16C56 Halting build on first failure as requested. BUILD FAILED: Wed Nov 26 17:19:14 2003 |
|
| 8樓: | >>參與討論 |
| 作者: eeproom 于 2003/11/26 17:28:00 發(fā)布:
are you update your mplab ide under www.htsoft? (my pc can't turn to chinese at time) i passed be so: Executing: "C:\HT-PIC\BIN\PICC.EXE" -C -E"c.cce" "c.c" -O"c.obj" -Q -MPLAB -16F84A -X -ASMLIST -PRE -PROTO -S -W9 Executing: "C:\HT-PIC\bin\picc.exe" -E"ee.lde" "C:\HTSOFT\PIC18\study\new\c.obj" -Q -MPLAB -16F84A -LF -O"ee.cof" -O"ee.hex" MEMORY Usage Map: Program ROM $0000 - $0005 $0006 ( 6) words Program ROM $03F4 - $03FF $000C ( 12) words $0012 ( 18) words total Program ROM Bank 0 RAM $000C - $000D $0002 ( 2) bytes total Bank 0 RAM Program statistics: Total ROM used 18 words (1.8%) Total RAM used 2 bytes (2.9%) Loaded C:\HTSOFT\PIC18\study\new\ee.cof BUILD SUCCEEDED: Wed Nov 26 17:30:29 2003 * - 本貼最后修改時(shí)間:2003-11-26 17:40:30 修改者:eeproom |
|
| 9樓: | >>參與討論 |
| 作者: openopen 于 2003/11/26 21:37:00 發(fā)布:
搞定了! 終于找到解決方法了: /// TEST program #include <pic.h> CHAR tran(CHAR xx); CHAR tran(CHAR xx) { #asm GLOBAL ?_tran movwf ?_tran ;W -->>?_tran incf ?_tran incf ?_tran movf ?_tran,w ;?_tran-->> W #endasm return xx; } void main(void) { TRISB=0; PORTB=tran(0x01); asm("\tnop"); while(1){;} } 因?yàn)橛肳做參數(shù)傳遞故 movwf ?_tran movf ?_tran,w 不能省. !!! eeproom兄 incf_tran incf和_tran 之間本應(yīng)要加空隔的,因?yàn)槲以瓫](méi)通過(guò),故意連的. 我想PICC把它看作標(biāo)號(hào)了吧?你的仿真結(jié)果對(duì)?? |
|
| 10樓: | >>參與討論 |
| 作者: openopen 于 2003/11/26 21:47:00 發(fā)布:
RE: 如果局部變量參數(shù)傳遞的是多個(gè)CHAR,int. 返回一個(gè)int 或int 或 LONG 不知何去何從?? 希望大俠跟貼,教教我這樣的beginner. |
|
| 11樓: | >>參與討論 |
| 作者: eeproom 于 2003/11/26 22:05:00 發(fā)布:
建議讓編譯器生成asm文件再研究。 |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |