07-08-2014, 12:34 AM | #1 |
Đệ tử 3 túi
Tham gia ngày: Feb 2006
Bài gửi: 50
: |
Nhờ giải thích giúp đoạn code
Chào các bạn !
Mình tìm được đoạn code điều khiển triac, các dòng lệnh thì mình hiểu, nhưng không hiểu lắm cách code chạy thế nào để kích được triac ( không hiểu ở ngắt #int_ext và #int_ccp1 ). Mong các bạn giải đáp giúp mình. Xin chân thành các ơn ! Sau đây là đoạn code ! #include <16F88.h> #device adc=10 #fuses HS, NOWDT, NOPUT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT #use delay(clock=20000000) #define TRIAC PIN_B7 static int1 ZEROFLAG; static int1 TRIGGER; #int_ext void zero_crossing() { set_timer1(0); ZEROFLAG = 1; output_low(TRIAC); } #int_ccp1 void ccp_equal_to_timer1(){ if(TRIGGER) { output_low(TRIAC); ccp_1 = ccp_1 - 200; TRIGGER = 0; } if(ZEROFLAG) { output_high(TRIAC); ccp_1 = ccp_1 + 200; TRIGGER = 1; ZEROFLAG = 0; } } void main(){ static unsigned int16 value; ccp_1=65535; ext_int_edge(L_TO_H); setup_ccp1(CCP_COMPARE_INT); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); enable_interrupts(INT_EXT); enable_interrupts(INT_CCP1); enable_interrupts(GLOBAL); setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(sAN0); set_adc_channel(0); for(; { value = read_adc(); delay_ms(200); ccp_1 = (int16)value * 62; } } |
|
|