Merhaba herkese
pic e pot bağlayıp, pot un kontrolune gore gecikme vererek scr tetiklemek istiyorum , kodu belli bir yere kadar götürdüm ama tam istediğim sonucu elde edemedim yardımcı olabilecek birileri var mı ?
unsigned int x;
unsigned char FlagReg;
sbit ZC at FlagReg.B0;
void interrupt()
{
if (INTCON.INTF){ //kesme oluşması için INTCON.INTF bayrağı kaldırdı
ZC = 1;
INTCON.INTF = 0;
}
}
unsigned int sayi1, sayi2;
void main() {
ADCON0 =0b00000001;
ADCON1 =0x0C;
TRISA= 0b00000001;
TRISD = 0b11111110; // RD0 is output
TRISB = 0x01; //RB0 giriş yapıldı
OPTION_REG.INTEDG = 1; //yükselen kenarda tetikleme
INTCON.INTF = 0; // INT bayrağını sil
INTCON.INTE = 1; //Rb0 KESMESİNE MÜSADE ET
INTCON.GIE = 1; //BÜTÜN KESMELERE MÜSADE ET
do
{
x = ADC_Read(0); // Get 10-bit results of AD conversion
//PORTD = temp_res;
//PORTE = temp_res >> 8; // Send 2 most significant bits to RC1, RC0
sayi1 =x; // okunan değer
sayi2 = sayi1/10;
if(sayi2>42){
sayi2=sayi2-1;
}
if(sayi2>84){
sayi2=sayi2-1;
}
sayi2=sayi2/10;
if (ZC){ //zero crossing oluştu
delay_ms(x); // tetikleme pulsenin gecikme süresi (ÇALIŞMAYAN KISIM)
PORTD.b0 = 1;
delay_us(1000); //1000us pulse göndersin
PORTD.f0 = 0;
ZC = 0;
}
}
while(1);
}