السلام عليكم ورحمه الله وبركاته
http://www.qariya.com/vb/showthread.php?t=112123
هذا الموضوع للاخ الفاضل وضح فيه كيفيه الارسال عن طريق PIC
حاولت اعمل زيه علي ATMEGA 32
بس للاسف مش عارف اظبط ازاي هيخرج بــــ تردد 38 KHZ وازاي اظبط ال PWM
لو حد يقدر يساعدني في الكود وده البرنامج اللي كتبته
هو في مرحله السميوليشن بيخرج اوتبوت لكن في الواقع لما بجربه مع تلفزيون سوني يعمل بتردد 38KHZ لا يعطي اي استجابه
لو في حد يقدر يساعني في الكود وشكرا
ده الكود اللي شغلته
كود:
void main() {
DDB3_bit = 1; // Set PORTB pin 3 as output pin for the PWM (according to datasheet)
PWM1_Init(_PWM1_FAST_MODE, _PWM1_PRESCALER_1,_PWM1_NON_INVERTED, 127); //pwm 40khz with duty cycle =100 %
PWM1_Stop();
while (1){
PWM1_Start(); //start bit high for 2400 usec then low for 600usec
delay_us(17622);
PWM1_Stop();
delay_us(2500);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(1250);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(600);
PWM1_Stop();
delay_us(650);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(600);
PWM1_Stop();
delay_us(1250);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(600);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(1250);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(600);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(600);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(1250);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(600);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(600);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(600);
PWM1_Start(); //send 1 bit : high for 1200usec then low for 600 usec
delay_us(650);
PWM1_Stop();
delay_us(600);
}
}