我是初学者,可能下面请教的问题可能和初始化有关,请大家指点<br />我想用capcom2产生一种变化脉宽信号,并通过AD控制频率,汇编变好后在编译的时候出现如下问题:<br />Build target 'Target 1'<br />compiling MAIN.C...<br />MAIN.C(2): error C25: syntax error near ':'<br />MAIN.C(4): warning C34: 'ADC_INIT': missing declaration specifiers<br />MAIN.C(4): error C42: 'ADC_INIT': not in formal parameter list<br />MAIN.C(4): error C25: syntax error near 'CALLA'<br />MAIN.C(4): warning C34: 'CALLA': missing declaration specifiers<br />MAIN.C(4): error C42: 'CALLA': not in formal parameter list<br />MAIN.C(5): warning C34: 'CC2_INIT': missing declaration specifiers<br />MAIN.C(5): error C42: 'CC2_INIT': not in formal parameter list<br />MAIN.C(5): warning C34: 'BSET': missing declaration specifiers<br />MAIN.C(5): error C42: 'BSET': not in formal parameter list<br />MAIN.C(6): warning C34: 'IEN': missing declaration specifiers<br />MAIN.C(6): error C42: 'IEN': not in formal parameter list<br />MAIN.C(6): warning C34: 'MOV': missing declaration specifiers<br />MAIN.C(6): error C42: 'MOV': not in formal parameter list<br />MAIN.C(6): warning C34: 'R3': missing declaration specifiers<br />MAIN.C(6): error C42: 'R3': not in formal parameter list<br />MAIN.C(53): error C7: compilation aborted<br />Target not created<br /><br />源程序如下:<br />MAIN:<br /> CALLA ADC_INIT//<br /> CALLA CC2_INIT//<br /> BSET IEN// <br /> MOV R3,#2// <br />AA:<br /> JBC ADCIR,ADC_INTE//程序并清零标志位<br /> AJMP AA//<br />ADC_INIT:<br /> MOVE P5DIDIS,#0002H//<br /> MOV ADC_CIC,#4FH//;开AD中断,并取ILVL=3,GLVL=3<br /> MOV ADC_CON,#91H//;0-3位,通道选择,4-5位模式选择,7位启动AD<br /> RET<br /><br />CC2_INIT:<br /> MOVE T78CON,#0000H//计数频率<br /> EXTR #04//<br /> MOV T7,#OOOOH//; 设定时器初值<br /> MOV T7REL,#0000H//;设定时器重装载寄存器初值<br /> SETB DP9.P0//; 把p9.0端口设置为输出<br /> BCLR ALTSEL0P9.P0//;<br /> SETB ALTSEL1P9.P0//;选择端口复用功能<br /> MOV CC2_M4,#0007H//;把cc16分配给T7,并用比较方式3<br /> MOV CC16,#8000H//;设置比较寄存器初值<br /> OR T78CON,#0040H//;开启定时器T7<br /> RET//<br /><br />ADC_INTE:<br /> MOV R4,ADC_DAT//; 读转换结果<br /> AND R4,#3FFH //;取转换结果<br /> SHL R4,#6//;将10位的转换结果左移6位<br /> MOV T7REL,R4//;将修改值存入T7重装载寄存器<br /> CMP R3,#4//; <br /> JMPA CC_NZ,BB//<br /> BCLR Z//<br /> MOV R3,#2//<br /> JMPS CC//<br />BB: //<br /> MOV R3,#4//; 以上为设置占空比0.25和0.5的间隔转换<br />CC:<br /> MOV R1,#FFFFH//<br /> MOV R2,T7REL//<br /> SUB R1,R2//<br /> MOV MDL,R1//<br /> DIVU R3//<br /> ADD MDL,T7REL//<br /> MOV CC16,MDL//;计算比较寄存器的值cc16=(2^16-T7REL)/R3+T7REL<br /> RETI<br /><br />有写错的地方请帮我挑挑<br /><br /> |
|