mình viết chương trình này nhưng nó bảo lỗi như thế này: có ai biết sửa lỗi này kô.help me
"Interrupts disabled during call to prevent re-entrancy: (kich)"
Code:
#include <18f4520.h>
#DEVICE ADC=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, STOP=1)
int16 U=0,I=0;
// ngat ngoai
#int_EXT
void kich(int16 a=0) //a goc kich
{
set_timer0(a);
}
//ngat timer0
#int_timer0
void timer0_isr()
{
set_timer1(15534); //10ms thi tran
output_high(pin_D0);
delay_us(10);
output_low(pin_D0);
}
#int_timer1
void timer1_isr()
{
output_high(pin_D0);
delay_us(10);
output_low(pin_D0);
}
//doc ADC
void doc_ADC()
{
set_ADC_channel(0);
delay_us(10);
ap=read_ADC();
set_ADC_channel(1);
delay_us(10);
dong=read_ADC();
}
// chuong trinh chinh
void main()
{
setup_ADC(All_Analog);
setup_ADC(ADC_CLOCK_INTERNAL);
enable_interrupts(int_EXT);
EXT_int_edge(L_TO_H);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
enable_interrupts(int_timer0);
setup_timer_1(T1_INTERNAL|T1_DIV_by_1);
enable_interrupts(int_timer1);
enable_interrupts(global);
while(1)
{
doc_ADC();
kich(ap);
U=U*220/512;
I=I*200/1024;
printf("%lu %lu \n\r",U,I);
}
}