音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(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ī)
用C編程,兩個(gè)原文件之間數(shù)組如何調(diào)用?
/* 文件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
編譯結(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
試試
extern bank1 volatile unsigned CHAR buf_display[3][8];

4樓: >>參與討論
qianlong30
我試過(guò),不行.
我用的是PICMATE2004

5樓: >>參與討論
qianlong30
如果把顯示緩沖數(shù)組定義在文件2中,編譯就正常.
編譯能通過(guò),用仿真器仿真時(shí),目標(biāo)板動(dòng)態(tài)掃描正常;但我想數(shù)組在主函數(shù)文件中定義,實(shí)參和形參的傳遞是否只能在同一文件?

6樓: >>參與討論
qianlong30
寫(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樓: >>參與討論
王紫豪
建議兄弟猛補(bǔ)C語(yǔ)言,你看看你下面寫(xiě)的是啥!
void scan(arry)
extern unsigned CHAR arry[ ];
{
  arry[3]=0;
}


8樓: >>參與討論
qianlong30
謝謝樓上的,我確實(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];

}

參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
大家?guī)臀铱纯闯绦虬,急?/a>
哪位朋友能告訴我,有3元/片以下的單片機(jī)嗎?
求教關(guān)于MSP430F149的ADC問(wèn)題!
有沒(méi)有4通道以上的12位A/D轉(zhuǎn)換芯片?
領(lǐng)導(dǎo)讓我做個(gè)恒溫控制設(shè)備,都說(shuō)很難實(shí)現(xiàn)??
免費(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)