英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: picc中的syntax error,附程序和错误报告 [打印本页]

作者: winnie    时间: 2009-4-25 23:55
标题: picc中的syntax error,附程序和错误报告
程序如下,用的是没有破解的picc8.05和mplabide7.30。syntax error发生在汇编#asm处。有人遇到过这种问题吗?
请教一下。好像以前没有人说用嵌入汇编有问题的。
#include <pic1687x.h>
//__CONFIG(XT&UNPROTECT&PWRTEN&WDTDIS&BORDIS);
unsigned char flag;
unsigned char pcled;
unsigned int i;
unsigned char j;
void DELAY()
{   
for(i=2555; --i;)
continue;
}
void main()
{
   TRISC=0x00;
   PORTC=0x01;
   pcled=0x01;
   for(flag=1;flag<8;flag++)
   {  
      //PORTC=0x05;
      #asm
      rrf pcled,0
      movwf PORTC
      #endasm
      DELAY();
     }
   for(j=1;j<8;j++)  
       {
           //PORTC=0x03;
        #asm
         rlf pcled,0
          movwf portc
          #endasm  
          DELAY();
    }
}

Clean: Deleting intermediary and output files.
Clean: Deleted file "F:\PIC\led1\led1.cce".
Clean: Done.
Executing: "C:\HT-PIC\BIN\PICC.EXE" -C -E"led1.cce" "led1.C" -O"led1.obj" -Zg9 -O -Q -MPLAB -16F877A
This compiler will expire in 20 days
Compiler operating in demo mode.
Some command line options are disabled and compilation is delayed.
Register this compiler to enable these options.
Error[000] F:\PIC\led1\led1.C 24 : syntax error
Error[000] F:\PIC\led1\led1.C 33 : syntax error
Halting build on first failure as requested.
BUILD FAILED: Wed Dec 28 21:47:34 2005
作者: winnie    时间: 2009-4-25 23:56
#asm //0.5MS延时,4M晶振下,比较适合于测试目的,不适合真正进行产品开发                  
clrf _count      ;//对全局变量,才可以以行内汇编的形式进行变量使用,就是在定义的变量前加下划线。
clrf _count1     ;//
movlw 0x03        ;
movwf _count2     ;
LDloop  
decfsz _count,f    ;
goto LDloop      ;
decfsz _count1,f
goto LDloop
decfsz _count2,f
goto LDloop
    nop;
#endasm

如果是系统定义的,比如PORTA,那么还是要写成   例如   MOVF  _PORTA,W;

另外,如果编译器破解不够到位,那么死活会不允许嵌入汇编,我的PICC18就是这样,郁闷,只能单行单行

以asm("nop");的形式加入汇编,另外,如果破解的不到位,很多高级功能用不了




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://www.enroobbs.com/) Powered by Discuz! X3.2