Lỗi Error [845] khi biên dịch chương trình

xe đạp

Trứng gà
Trước đây em có viết một đoạn chương trình đọc adc cho pic16f887 theo tut trên diễn đàn và chạy tốt, bữa nay thi xong học kỳ nên mở ra ôn lại thì khi build nó lại báo lỗi ERROR [845] . Em đã tìm hiểu trên google nhưng không tìm ra được cách giải quyết vấn đề này. Sau đó em lấy một project đo nhiệt độ dùng LM35 trên diễn đàn của anh Dương Anh Tùng thì khi build nó vẫn báo lỗi đó, nếu chương trình đó em bỏ đoạn chương trình ngắt đi thì lại dịch được, quả thật là em không biết nó bị cái gì nữa, cho dù em đã dùng code mẫu có sẵn nó vẫn báo lỗi. đây là đoạn chương trình đọc ADC giống như trên 4rum:

PHP:
/******************************************************************************
*        CONFIGUARE PIC
******************************************************************************/
#include <htc.h>
#include "lcd.h"
#include "lcd.c"
 
__CONFIG(HS & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT &
SWBOREN & IESODIS & FCMDIS & LVPDIS & DEBUGDIS);        //1st config. word
__CONFIG(BORV21);                                        //2nd config. word
 
/******************************************************************************
*        CONFIUARE ADC
******************************************************************************/
 
//------ Khoi tao Port --------------------------------------------------------
void port_init()
{
    ANSEL |=1;    // su dung RA0
    ANSELH=0;
    TRISA0=1;    // cau hinh chan RA0 la input
    TRISB=0x00;
    PORTB=0;
}
 
//------ Khoi tao ADC ---------------------------------------------------------
void adc_init()
{
    CHS3=0;
    CHS2=0;
    CHS1=0;
    CHS0=0;            // chon kenh AN0
   
    VCFG1=0;
    VCFG0=0;        // chon V_ref noi
   
    ADCS1=1;
    ADCS0=0;        // chon toc do chuyen doi
   
    ADFM=1;            // chon ket qua ADC 10-bit
    ADON=1;            // bat ADC
}
 
//------ Khoi tao ngat --------------------------------------------------------
void interrupt_init()
{
    ADIF=0;            // xoa co ngat ADC
    ADIE=1;            // cho phep ngat ADC
    PEIE=1;            // cho phep ngat ngoai vi
    GIE=1;            // cho phep ngat toan cuc
}
 
//------ Hien thi ket qua -----------------------------------------------------
void adc_export_lcd(unsigned long i)
{
    char ket_qua[4];
    for(char j=0;j<4;j++)
    {
        ket_qua[j]=(i%10)+0x30;
        i /=10;
    }
   
    lcd_gotoxy(0,1);
    lcd_puts("Vin= ");
    lcd_putc(ket_qua[3]);
    lcd_putc('.');
    lcd_putc(ket_qua[2]);
    lcd_putc(ket_qua[1]);
    lcd_putc(ket_qua[0]);
    lcd_putc('V');
}
   
//------ Delay ----------------------------------------------------------------
void delay(unsigned int time)
{
    unsigned int i,j;
    for(i=0;i<time;i++)
    {
        for(j=0;j<time;j++){;}
    }
}
       
/******************************************************************************
*        CHUONG TRINH CHINH
******************************************************************************/
void main()
{
    port_init();
    adc_init();
    interrupt_init();
    lcd_init();
    delay(100);
    lcd_puts("TEST ADC");
    lcd_gotoxy(0,1);
       
    while(1)
    {
        delay(500);
        GODONE=1;        // bat dau chuyen doi
    }
}       
   
/******************************************************************************
*        CHUONG TRINH NGAT
******************************************************************************/
void interrupt isr(void)
{
    unsigned long kq=0;
    if(ADIF==1&&ADIE==1)
    {
        ADIF=0;        // xoa co ngat
        kq =(ADRESH<<8)|ADRESL;
        kq=kq*5000/1023;
        adc_export_lcd(kq);
    }
}
 

eMagic

Gà mẹ
Staff member
Em dán cái lỗi em bị lên và cho biết đang dùng mplab ide version mấy?
 

xe đạp

Trứng gà
đã khắc phục được lỗi rồi ạ, cài luôn bản htpic v9.83 vô là hết lỗi (lúc trước em dùng mplab v8.83 + htpic v9.65, giờ cài mplab v8.86+ htpic v9.83), mỗi tội config bit chưa quen
 
Top