02-04-2011, 11:23 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Jan 2011
Bài gửi: 7
: |
Cần giúp sửa lỗi code
Em mới học PIC, em viết đoạn code nay chưa chạy nhưng không hiểu nguyên nhân mong các anh giúp đỡ.
#include <16f877a.h> #include <def_877a.h> #device *=16 ADC=8 #FUSES NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP #use delay(clock=4000000) #use fast_io(A) #use fast_io(B) #use fast_io(C) //Khai bao ham void dkdcbuoc(); unsigned int16 count; #INT_EXT void EXT_ngat() { output_C(0x01); delay_ms(1000); dkdcbuoc(); count=0; } //Chuong trinh ngat TMR0 #int_timer0 void interrupt_timer0() { set_timer0(6); ++count; if(count == 20000) // 20000*500us = 1000000us = 10s { count=0; output_C(0x00); } } void main(void) { SET_TRIS_A(0x00); SET_TRIS_B(0xff); SET_TRIS_C(0x00); enable_interrupts(GLOBAL); enable_interrupts(INT_EXT); ext_int_edge(0,H_to_L); PORT_B_pullups(1); enable_interrupts(int_timer0); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); set_timer0(6); output_C(0x01); } void dkdcbuoc() { SET_TRIS_A(0x00); SET_TRIS_C(0x00); unsigned int16 i; unsigned int8 goc; CONST unsigned quayT[4]={0x01,0x04,0x02,0x08}; CONST unsigned quayN[4]={0x08,0x02,0x04,0x01}; i=0; for(goc=0;goc<=50;goc++) //Dong co quay thuan { output_A(quayT[i]); delay_ms(200); i++; if(i==4) { i=0; } } delay_ms(1000); i=0; for(goc=0;goc<=51;goc++) //Dong co quay nghich { output_A(quayN[i]); delay_ms(200); i++; if(i==4) { i=0; } } } |
|
|