PICC8.05编译器的变量声明问题

[复制链接]
 楼主| 单片机电源 发表于 2007-4-12 13:31 | 显示全部楼层 |阅读模式
我在TypeDefine.h头文件中定义了一个类型,代码如下:<br />#ifndef&nbsp;&nbsp;&nbsp;&nbsp;DATA_TYPE<br />#define&nbsp;&nbsp;&nbsp;&nbsp;DATA_TYPE<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;uint&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int<br />#define&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char<br />#define&nbsp;&nbsp;&nbsp;&nbsp;ulong&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;long<br /><br />typedef&nbsp;&nbsp;&nbsp;&nbsp;union<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;struct<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b0:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b1:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b2:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b3:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b4:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b5:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b6:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;b7:&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}bit_def;<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;&nbsp;&nbsp;&nbsp;all;<br />}byte_def;<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;ubat_fault_value&nbsp;&nbsp;&nbsp;&nbsp;108<br />#define&nbsp;&nbsp;&nbsp;&nbsp;setbit(var,bit)&nbsp;&nbsp;&nbsp;&nbsp;(var|=(0x01&lt&lt(bit)))<br />#define&nbsp;&nbsp;&nbsp;&nbsp;clrbit(var,bit)&nbsp;&nbsp;&nbsp;&nbsp;(var&=(~(0x01&lt&lt(bit))))<br />#define&nbsp;&nbsp;&nbsp;&nbsp;checkbit(var,bit)&nbsp;&nbsp;&nbsp;&nbsp;(var&(0x01&lt&lt(bit)))<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_1&nbsp;&nbsp;&nbsp;&nbsp;RA5=0,RA4=0,RA2=0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_2&nbsp;&nbsp;&nbsp;&nbsp;RA5=0,RA4=0,RA2=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_3&nbsp;&nbsp;&nbsp;&nbsp;RA5=0,RA4=1,RA2=0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_4&nbsp;&nbsp;&nbsp;&nbsp;RA5=0,RA4=1,RA2=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_5&nbsp;&nbsp;&nbsp;&nbsp;RA5=1,RA4=0,RA2=0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_6&nbsp;&nbsp;&nbsp;&nbsp;RA5=1,RA4=0,RA2=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_7&nbsp;&nbsp;&nbsp;&nbsp;RA5=1,RA4=1,RA2=0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHNL_8&nbsp;&nbsp;&nbsp;&nbsp;RA5=1,RA4=1,RA2=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;BUZZ_RING&nbsp;&nbsp;&nbsp;&nbsp;RC3=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;BUZZ_OFF&nbsp;&nbsp;&nbsp;&nbsp;RC3=0<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;LED_OFF&nbsp;&nbsp;&nbsp;&nbsp;RC1=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LED_ON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC1=0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;KEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC2<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;Enable_Int&nbsp;&nbsp;&nbsp;&nbsp;GIE=1,PEIE=1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;Disable_Int&nbsp;&nbsp;&nbsp;&nbsp;GIE=0,PEIE=0<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHARGE_OPEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC4<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CHARGE_SHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC5<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT1_OPEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT1_SHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT2_OPEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB2<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT2_SHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB3<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT3_OPEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB4<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT3_SHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB5<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT4_OPEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB6<br />#define&nbsp;&nbsp;&nbsp;&nbsp;OUT4_SHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB7<br /><br />#endif<br />在Battery&nbsp;Check.h头文件中声明了fault_battery、ubat、n_bat、n_fault这四个变量,代码如下:<br />#ifndef&nbsp;&nbsp;&nbsp;&nbsp;BATTERY_DEF<br />#define&nbsp;&nbsp;&nbsp;&nbsp;BATTERY_DEF<br /><br />#if&nbsp;&nbsp;&nbsp;&nbsp;1==BATTERY_OP<br />#define&nbsp;&nbsp;&nbsp;&nbsp;BATTERY_EXT<br />#else<br />#define&nbsp;&nbsp;&nbsp;&nbsp;BATTERY_EXT&nbsp;&nbsp;&nbsp;&nbsp;extern<br />#endif<br /><br />#include&nbsp;&nbsp;&nbsp;&nbsp;&ltpic.h&gt<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;TypeDefine.h&quot;<br /><br />BATTERY_EXT&nbsp;&nbsp;&nbsp;&nbsp;byte_def&nbsp;&nbsp;&nbsp;&nbsp;fault_battery;<br />#define&nbsp;&nbsp;&nbsp;&nbsp;fault&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.all<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b0<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f2&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f3&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b2<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f4&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b3<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f5&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b4<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f6&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b5<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f7&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b6<br />#define&nbsp;&nbsp;&nbsp;&nbsp;f8&nbsp;&nbsp;&nbsp;&nbsp;fault_battery.bit_def.b7<br /><br />BATTERY_EXT&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;&nbsp;&nbsp;&nbsp;ubat,n_bat,n_fault;<br /><br />BATTERY_EXT&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;&nbsp;&nbsp;AD_Intial(void);<br />BATTERY_EXT&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;&nbsp;&nbsp;fault_check(void);<br /><br />#endif<br />在Battery&nbsp;Check.c中定义这些变量:<br />#define&nbsp;&nbsp;&nbsp;&nbsp;BATTERY_OP&nbsp;&nbsp;&nbsp;&nbsp;(1)<br /><br />#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;Battery&nbsp;Check.h&quot;<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&quot;Interrupt.h&quot;<br /><br />void&nbsp;&nbsp;&nbsp;&nbsp;AD_Intial(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISA&nbsp;=&nbsp;0x37;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//RA0,RA1,RA2,RA4,RA5:input<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTA&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCON1&nbsp;=&nbsp;0x05;&nbsp;&nbsp;&nbsp;&nbsp;//RA0,RA1&nbsp;are&nbsp;used&nbsp;as&nbsp;analog&nbsp;input,RA3&nbsp;is&nbsp;Vref.<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCON0&nbsp;=&nbsp;0x40;&nbsp;&nbsp;&nbsp;&nbsp;//A/D&nbsp;conversion&nbsp;clock&nbsp;is&nbsp;Fosc/8,Fosc=4MHz.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;&nbsp;&nbsp;&nbsp;ubat=0x00,n_bat=1,n_fault=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;byte_def&nbsp;&nbsp;&nbsp;&nbsp;fault_battery=0x00;<br />}<br />编译提示:<br />Executing:&nbsp;&quot;C:\HT-PIC\BIN\PICC.EXE&quot;&nbsp;-C&nbsp;-E&quot;Main.cce&quot;&nbsp;&quot;Main.c&quot;&nbsp;-O&quot;Main.obj&quot;&nbsp;-I&quot;C:\HT-PIC\include&quot;&nbsp;-Zg9&nbsp;-O&nbsp;-ASMLIST&nbsp;-Q&nbsp;-MPLAB&nbsp;-16F73<br />Executing:&nbsp;&quot;C:\HT-PIC\BIN\PICC.EXE&quot;&nbsp;-C&nbsp;-E&quot;Battery&nbsp;Check.cce&quot;&nbsp;&quot;Battery&nbsp;Check.c&quot;&nbsp;-O&quot;Battery&nbsp;Check.obj&quot;&nbsp;-I&quot;C:\HT-PIC\include&quot;&nbsp;-Zg9&nbsp;-O&nbsp;-ASMLIST&nbsp;-Q&nbsp;-MPLAB&nbsp;-16F73<br />Error[000]&nbsp;E:\microchip\C&nbsp;Language\Battery&nbsp;Check.c&nbsp;13&nbsp;:&nbsp;probable&nbsp;missing&nbsp;'}'&nbsp;in&nbsp;previous&nbsp;block<br />Error[000]&nbsp;E:\microchip\C&nbsp;Language\Battery&nbsp;Check.c&nbsp;15&nbsp;:&nbsp;no&nbsp;identifier&nbsp;in&nbsp;declaration<br />Warning[000]&nbsp;E:\microchip\C&nbsp;Language\Battery&nbsp;Check.c&nbsp;15&nbsp;:&nbsp;missing&nbsp;basic&nbsp;type:&nbsp;int&nbsp;assumed<br />Error[000]&nbsp;E:\microchip\C&nbsp;Language\Battery&nbsp;Check.c&nbsp;15&nbsp;:&nbsp;;&nbsp;expected<br />Halting&nbsp;build&nbsp;on&nbsp;first&nbsp;failure&nbsp;as&nbsp;requested.<br />BUILD&nbsp;FAILED:&nbsp;Thu&nbsp;Apr&nbsp;12&nbsp;13:42:44&nbsp;2007<br />这是为什么?程序书写没有问题啊!<br />我第一次用PICC编译器,希望各位大虾指点!多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

49

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部