首页 | 供应信息 | 采购信息 | PDF资料 | 技术资料 | 行业资讯 | 产品展示 | 人才市场 进入会员区
   技术文章分类:单片机/DSP 嵌入式系统 测试仪表 电源技术 接口电路 存储器 传感与控制 通信网络 无线通信 模拟技术 显示与光电 EDA/PLD 汽车电子 消费电子 电子综合
   电子综合工具:PDF资料大全 电子缩略语 IC型号替换 IC厂家 电子电路图 技术参数 设计应用 解决方案
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
  您所在的位置: IC37首页 > 技术问答 > 单片机 > 请问,keil中这样定义外部位变量出错,怎么办?

  请问,keil中这样定义外部位变量出错,怎么办? 

因为要在其它c文件中使用同一个位变量(标志位),所以必须将其定义为外部。

1)在bdata中定义可位寻址字节signdat:

extern unsigned char bdata signdat=0;

2)然后定义位:

sbit task0sig = signdat^0;

3)再然后就出错了:

但是如果下面这样去掉“extern”就没有问题:

1)在bdata中定义可位寻址字节signdat:

unsigned char bdata signdat=0;

2)然后定义位:

sbit task0sig = signdat^0;

请问各位老师这可怎么办?

我必须要使同一bit变量可以在同一工程内的其它c文件中使用,因为这bit变量可能是任务标志,显示刷新标志等系统参数。

请您务必要帮我!感激不尽!

小刘

QQ:382339388

e-mail:hero_0810@163.com


作者:hero_0810  2008-1-29 10:16:00

  回复1  声明的外部变量不能初始化167829

而且sbit定义要在定义变量的时候一起定义。。。


作者:ayb_ice  2008-1-29 11:18:00

  回复2  你这样定义167830

比如在

源文件original_file.c中

unsigned char bdata signdat=0;

sbit task0sig = signdat^0;

在目标文件中object.c中引入

extern bit task0sig;

这样保证没错


作者:happystar  2008-1-29 12:33:00


我要投稿 注册会员
客服咨询热线:0755-26000950 0755-26007355
 相关技术问答
·stc89le58rd+内..  2008-1-28
·最小误差的检测两个负脉冲的..  2008-1-28
·单片机外部信号的有效电平持..  2008-1-28
·大侠们, 麻烦推荐一个US..  2008-1-28
·请高手帮忙解释一下这个查表..  2008-1-28
·请推荐便宜的FIFO.  2008-1-28
·请达人解释一下这个指令的意思  2008-1-28
·有关SPI接口的奇怪问题,..  2008-1-28
·求助有关MSC1210Y5..  2008-1-29
·pwm 电机调速时碰到的一..  2008-1-29
·请教各位一个P1口模拟SP..  2008-1-29
·请问哪位大哥有比较好的 P..  2008-1-29
·准备开一个23*25厘米3..  2008-1-29
 
 热门IC
STP20NM60FD  STP8NM50  STP8NM60FP  S6010VS2  S4010VS2  SBL2035CT  NLV25T-018J-PF  NLV32T-R15J-PF  NLV32T-R39J-PF  Q4008NH4  STRW6753  TSH71CPT  SI4835B  CXP88132-194Q  651F01-509  RD2.0P-T1  2SC5376-B  MTD1N60E  STD17N06-1  IL388DAA-OOT  AND633S10CTR  7.5X-DZD7.5X-TA  TC9164  LMX2324  RD3.0P  CY74FCT543ATQCT  UPD780023ACW  TL431IN  CXM3006R-T4  MM1469XF  NJM2283V-TE1  LB2016T4R7M  TDA8006A  WSC-1  HD6433042SA94E  GS1117CE-5  BZM55C20-TR  BZV55-B3V9  BDX64B  KDS2236S  LM336BDT  MAX8867EUK29T  PCK2002MPW  PRN111245101J  MC79M12BDT  MC7812CDT  R460004  TS27M4CPT  TZMC16  KA336-2.5