1- الكود سليم وهذا عمله:
المقاومة المتغيرة تزيد أو تنقص في عرض نبضة التردد الخارج من الرجل للمتحكم:

2- الآن هناك ملاحظة:
في الكود تعليمة تقسم قيمة المتغير بسعة 10 بت على 4 وهذا حتى يكون الناتج على شكل رقم تنائي 8 بت:
temp_duty = (temp_res/4); // Convert the 10 bit value to 8 bits
لماذا هذه التعليمة؟
ربما واضع الكود يريد إظهار ناتج التحويل على البورت B
هو هيأ البورت B ليكون كخرج بالتعليمة ;TRISB=0
لكن ينقصه تعليمة العرض وهي:
;PORTB = temp_duty
ومكانها في الكود يجب أن يكون هنا:
PWM1_set_Duty(temp_duty); // Set the duty value
Delay_ms(50); // Slow everything down a little
;PORTB = temp_duty
مجرد احتمال..