em dùng mạch phát hiện điểm 0 rồi tạo trễ bằng timer0 em thử với độ trễ 8ms rồi gửi xung có độ rộng 10us ,nhưng em mô phỏng không thấy đúng mọi người xem dùm em với em mới học viểt code thui .thanks you!
#include "C:\Documents and Settings\AdminPC\Desktop\triac3 try to\main.h"
//------------------------------------------------------------------
#define gate pin_d0
#define zero pin_b0
#int_ext
void ngatngoai()
{
set_timer0(99); // test 8ms
}
//-----------------------------------------------------------------
#int_timer0
void ngattimer0()
{
output_high(gate); //turn on triac
delay_us(10); //do rong xung 10us
output_low(gate) ; //turn off triac
}
void main()
{
output_d(0x00); //all portd=00
//////////////////////////////////////////////cau hinh va cho phep ngat ngoai va tiemr0
enable_interrupts(global);
enable_interrupts(int_timer0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); //256-1-8*10^-3*(20*10^6/(256*4))=99
enable_interrupts(INT_EXT);
ext_int_edge(L_TO_H);
while(true)
{
//doi ngat
}
}
#include "C:\Documents and Settings\AdminPC\Desktop\triac3 try to\main.h"
//------------------------------------------------------------------
#define gate pin_d0
#define zero pin_b0
#int_ext
void ngatngoai()
{
set_timer0(99); // test 8ms
}
//-----------------------------------------------------------------
#int_timer0
void ngattimer0()
{
output_high(gate); //turn on triac
delay_us(10); //do rong xung 10us
output_low(gate) ; //turn off triac
}
void main()
{
output_d(0x00); //all portd=00
//////////////////////////////////////////////cau hinh va cho phep ngat ngoai va tiemr0
enable_interrupts(global);
enable_interrupts(int_timer0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); //256-1-8*10^-3*(20*10^6/(256*4))=99
enable_interrupts(INT_EXT);
ext_int_edge(L_TO_H);
while(true)
{
//doi ngat
}
}