View Single Post
Old 07-08-2014, 12:34 AM   #1
Hieu98DT
Đệ 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;
}
}
Hieu98DT vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn