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

标题: 用了C18的编译器,中断为什么会出错 [打印本页]

作者: winnie    时间: 2009-4-26 11:35
标题: 用了C18的编译器,中断为什么会出错
void interrupt USART(void)

{
  unsigned char data,tmphead,tmptail;
/*
  if((TMR1IF) && (TMR1IE))
   {
  TMR1H = 0x80;
  TMR1IF = 0;
     if(60 == ++secs)
      {
   secs = 0;
    ++mins;
   }
  if(60 == mins)
   {
   mins = 0;
   ++hours;
   }
  if(24 == hours)
   {
      hours = 0;
   }
}
*/
  if((TMR2IF) && (TMR2IE))
   {
  TMR2IF = 0;
        ++msecs_timer;
   }
  if(RC1IF)
{
  LATD0 = 1;
   data = RCREG1;                   // read the received data
                                // calculate buffer index
   tmphead = ( USART_RxHead + 1 ) & USART_RX_BUFFER_MASK;
   USART_RxHead = tmphead;        // store new index
   if ( tmphead == USART_RxTail )
   {
     // ERROR! Receive buffer overflow
   }
                                
   USART_RxBuf[tmphead] = data;   // store received data in buffer
  }

  if(TRMT)
  {
                                // check if all data is transmitted  
   if ( USART_TxHead != USART_TxTail )
   {
                                // calculate buffer index  
     tmptail = ( USART_TxTail + 1 ) & USART_TX_BUFFER_MASK;
     USART_TxTail = tmptail;      // store new index  
    TXREG1 = USART_TxBuf[tmptail];  // start transmition  
   }
   else
   {
     TX1IE = 0;         // disable TX interrupt  
   }
  }
}

Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\mcc18\bin\mcc18.exe" -p=18F4520  /i"C:\mcc18\h" "enc_driver.c" -fo="enc_driver.o" -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
MPLAB C18 v3.02 (demo)
Copyright 1999-2005 Microchip Technology Inc.
Days remaining until demo becomes feature limited:  39
E:\myprogram\28dr\enc_driver.c:1399:Error: syntax error
Halting build on first failure as requested.
BUILD FAILED: Sun Sep 10 22:40:54 2006
作者: winnie    时间: 2009-4-26 11:35
C18里不能直接写TMR1IF的,看看.h文件,写成PIR1bits.TMR1IF




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