xin lỗi các bạn và đặc biệt là anh namqn. mình sơ ý wa. cám ơn anh đã giúp em.
em post lên diễn đàn cái code cũ mà kô để ý.xin chân thành xin lỗi về sai sót này .
Code:
#include <16f877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
// ngat ngoai
#int_EXT
void EXT_isr()
{
set_timer0(7); //4ms tran
}
//ngat timer0
#int_timer0
void timer0_isr()
{
set_timer1(40534);
output_high(pin_D0);
delay_us(10);
output_low(pin_D0);
}
// ngat timer1
#int_timer1
void timer1_isr()
{
output_high(pin_D1);
delay_us(10);
output_low(pin_D1);
}
// chuong trinh chinh
void main()
{
enable_interrupts(INT_EXT);
ext_int_edge(L_TO_H);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);
enable_interrupts(int_timer0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
enable_interrupts(int_timer1);
enable_interrupts(global);
while(true)
{
output_high(pin_d2);
delay_ms(10);
output_low(pin_d2);
delay_ms(10);
}
}
chuong trình chạy được timer0 nhưng khỏang 0.8ms là xuất xung rồi trong khi đó em cần timer0 chờ ngắt ngoài rồi mới được phép ngắt. còn timer1 thì kô chạy(tại vì kô thấy xuất xung ra D1).
mong anh giup em lần này nữa.thân chào anh