vc++中,在头文件定义了两个全局变量。在定时器函数用到那两个变量,结果总是出错,想请教大牛们

定义的全局变量是:CArray<double,double>XI,YI;提示的错误信息是:MapAllView.obj:errorLNK2005:"classCArray... 定义的全局变量是:CArray<double,double> XI,YI;
提示的错误信息是:
MapAllView.obj : error LNK2005: "class CArray<double,double> XI" (?XI@@3V?$CArray@NN@@A) already defined in MainFrm.obj
MapAllView.obj : error LNK2005: "class CArray<double,double> YI" (?YI@@3V?$CArray@NN@@A) already defined in MainFrm.obj
Debug/MapAll.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

MapAll.exe - 3 error(s), 0 warning(s)
问题解决了
展开
 我来答
手机用户27603
2011-08-25 · TA获得超过264个赞
知道答主
回答量:521
采纳率:100%
帮助的人:322万
展开全部
1、AT89S52共有3个定时/计数器,分别是定时/计数器0、1、2,比AT89S51多了一个定时/计数器2。
2、头文件应采用REG52.H,即:
#include <reg52.h>
该头文件与REG51.H的主要区别就是增加了有关定时/计数器2的特殊功能寄存器定义。主要包括:
sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;

3、C中的调用方式,一般有如下几步
A、设定TMOD及T2CON的值,确定其工作方式。比如TMOD |= 0x02;设定定时计数器0为定时方式2,。。。。。,其中T2CON内容决定定时计数器2的工作方式;
B、设定相应的定时计数初值;比如TH0=TL0=253;等
C、如果使用中断处理定时/计数器的溢出,则应设置允许其中断。比如ET0 = 1等。
D、根据需要启动定时器。比如TR0 = 1。
E、如果需要,应编制相应的中断服务函数处理定时中断,如:
void Timer0(void) interrupt 1
{
.......
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户29363
2011-08-24 · TA获得超过598个赞
知道小有建树答主
回答量:698
采纳率:50%
帮助的人:424万
展开全部
mTimer0set是一个自己写的子程序,用来设置定时器0的溢出机器周期,比如你设X=4000,就是4000个机器周期后溢出,加括号是因为,65535-x的优先度较低,不加括号他就先算%或者/了
追问
谢谢你的回答。让我学到了之前不了解的知识。不过我上面的问解在于自己的全局变量存在的严重的定义错误。因为目前VC自己还不是很熟悉。不过还是谢谢你!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式