Merhaba yaklaşık olarak 38 kHz frekansa sahip bir PWM sinyali üretmek istiyorum. Periyodumu 26 mikrosaniye olacak şekilde ayarlıyorum.
(https://ibb.co/ZgBpT8y)
Ancak benim kodu hesaplama şeklime göre böyle bir sinyal elde etmemem gerekiyor. Clock frekansı 1MHz yani bir clock darbesi 1 mikrosaniye.
if((P1IN & BIT3)!=BIT3) { //butona basılırsa
for(i=0;i<692;i++){ // 38kHz, 9ms %50 dutycycle PWM sinyal period=26us
P2OUT^=0x01;
__delay_cycles(4);
}
P2OUT=0x00;
}
hesabıma göre i++,i<692 ve Xor işlemi yaparken toplam 3 cycle harcanıyor. 4 saniye de ekleyince toplam 7 cycle yapıyor aynısı xor işlemi yapıldıktan sonra da olduğu için hesabıma göre periyodun 14 mikrosaniye olması lazım. Ancak ben 26 mikrosaniye gözlemliyorum. Sizce bunun sebebi nedir?