انت تستخدم نسخة مايكرو سي قديمة لذلك لم اتمكن من التصحيح على الكود مباشرة ....
لاحظ الخطأ في هذا المقطع من الكود و الذي يجعله لا يتحقق ابدا ...
كود:
x=adc_read(0);
x=(x *1023) /5000;
WordToStr(x,y);
if(x>=511)
{ pwm_init(5000);
pwm_change_duty(x);
pwm_start();
LCD_Out(1,5,"SENCE");
LCD_Out(2,8,"1");
delay_ms(500);
هنا اعلى قيمة للمدخل التناظري هي 1023 .
و حسب المعادلة التي كتبتها لحساب المتغير X فان اعلى قيمة لها ستكون :
1023×1023÷5000 = 209
ثم تطلب تشغيل PWM اذا كانت قيمة X اكبر او تساوي 511 و هذا الشرط لن يتحقق ابدا بالاضافة الى انك لم تحدد تشغيل PWM1 ام PWM2