|
|||||||||||
| 技術(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 |
用C編程,兩個(gè)原文件之間數(shù)組如何調(diào)用? |
| 作者:qianlong30 欄目:單片機(jī) |
/* 文件1中:有一個(gè)數(shù)組作為顯示緩沖區(qū),調(diào)用文件2中的SCAN()*/ #include <pic.h> bank1 volatile unsigned CHAR buf_display[3][8]={1,1,1,1,1,1,1,1,1,1}; extern void init_tmr2(void); extern void scan(buf_display); main() { TRISA=0X1F; TRISE=0X00; TRISD=0X00; init_tmr2(); while(1) scan(buf_display); //將顯示緩沖數(shù)組傳遞給文件2,以?huà)呙栾@示器 } /* 文件2: */ #include <pic.h> #define xs_wei RE2 //動(dòng)態(tài)顯示位鎖存器的片選信號(hào) #define led_wd RA5 //動(dòng)態(tài)顯示溫度鎖存器的片選信號(hào) #define led_sz RE0 //動(dòng)態(tài)顯示設(shè)置位鎖存器的片選信號(hào) #define ld RE1 //動(dòng)態(tài)顯示發(fā)光二極管鎖存器的片選信號(hào) void init_tmr2(void) { TMR2IF=0; TMR2=0X00; PR2=0XBF; T2CON=0X07; } /* 函數(shù)名稱(chēng)----init_tmr2() */ /* 功能----初始化T2定時(shí)器,用于顯示器動(dòng)態(tài)掃描時(shí)間控制 */ void scan(buf_display) extern unsigned CHAR buf_display[ ][ ]; { static unsigned CHAR wei=1; //動(dòng)態(tài)顯示的位標(biāo)志 -------------------- } 但編譯時(shí)通不過(guò),不是編譯環(huán)境的問(wèn)題,是這個(gè)程序不對(duì),初次用C,請(qǐng)賜教. |
| 2樓: | >>參與討論 |
| 作者: qianlong30 于 2006/6/10 19:38:00 發(fā)布:
編譯結(jié)果如下 項(xiàng)目名稱(chēng): E:\倉(cāng)庫(kù)\ SEC_2(V1.0)\程序\SEC2(V1.0).pmt 輸出文件路徑: E:\倉(cāng)庫(kù)\ SEC_2(V1.0)\程序\ "D:\Program Files\TH-PIC\bin\picc.exe" -MPLAB -I"D:\Program Files\TH-PIC\include" "E:\倉(cāng)庫(kù)\SEC_2(V1.0)\程序\scan_led.c" -C -16F77 -FAKELOCAL -G -D24 -W0 -Zg1 Error[000] E:\倉(cāng)庫(kù)\ SEC_2(V1.0)\程序\scan_led.c 34 : ONLY register storage class allowed Error[000] E:\ SEC_2(V1.0)\程序\scan_led.c 34 : dimension required HI-TECH PICC COMPILER (MICROCHIP PIC) V8.05PL1 COPYRIGHT (C) 1984-2004 HI-TECH SOFTWARE Serial NUMBER: HCPIC-37313 Licensed to : ONE 編譯失敗! |
|
| 3樓: | >>參與討論 |
| 作者: computer00 于 2006/6/10 20:23:00 發(fā)布:
試試 extern bank1 volatile unsigned CHAR buf_display[3][8]; |
|
| 4樓: | >>參與討論 |
| 作者: qianlong30 于 2006/6/10 21:54:00 發(fā)布:
我試過(guò),不行. 我用的是PICMATE2004 |
|
| 5樓: | >>參與討論 |
| 作者: qianlong30 于 2006/6/10 22:02:00 發(fā)布:
如果把顯示緩沖數(shù)組定義在文件2中,編譯就正常. 編譯能通過(guò),用仿真器仿真時(shí),目標(biāo)板動(dòng)態(tài)掃描正常;但我想數(shù)組在主函數(shù)文件中定義,實(shí)參和形參的傳遞是否只能在同一文件? |
|
| 6樓: | >>參與討論 |
| 作者: qianlong30 于 2006/6/11 8:43:00 發(fā)布:
寫(xiě)了一個(gè)簡(jiǎn)單的測(cè)試程序,還是編譯不通過(guò). //文件1如下: #include <pic.h> volatile unsigned CHAR arry[4]={1,1,1,1,1}; extern void scan(arry); main() { scan(arry); } //文件2如下: #include <pic.h> void scan(arry) extern unsigned CHAR arry[ ]; { arry[3]=0; } 哪個(gè)地方錯(cuò)了? |
|
| 7樓: | >>參與討論 |
| 作者: 王紫豪 于 2006/6/11 8:55:00 發(fā)布:
建議兄弟猛補(bǔ)C語(yǔ)言,你看看你下面寫(xiě)的是啥! void scan(arry) extern unsigned CHAR arry[ ]; { arry[3]=0; } |
|
| 8樓: | >>參與討論 |
| 作者: qianlong30 于 2006/6/11 12:30:00 發(fā)布:
謝謝樓上的,我確實(shí)不懂C語(yǔ)言,改為如下就通過(guò)了. //文件1如下: #include <pic.h> unsigned CHAR arry[4]={1,1,1,1}; extern void scan( ); main() { scan(arry); } //文件2如下: #include <pic.h> void scan(arry) unsigned CHAR arry[4]; { unsigned CHAR a; //a=arry[0]+arry[1]+arry[2]+arry[3]; } |
|
|
|
| 免費(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) |