#include<18F4431.h>
#define CLOCK_SP 20000000 // ความเร็วสัญญาณนาฬิกา
#fuses HS // โหมดการทำงานแบบ High Speed
#fuses NOLVP,NOWDT // No Low Voltage Program, No Watchdog timer
#fuses NOPROTECT // Code no protection
#use delay (clock=CLOCK_SP) // ใช้งานฟังก์ชัน delay_ms() & delay_us()
void main(){
int16 period;
period =511;
//ความถี่ของสัญญาณ = Fosc (ความถี่ของ Crystal)/ (4 * (period+1) * postscale) setup_power_pwm_pins(PWM_COMPLEMENTARY,PWM_OFF,PWM_OFF,PWM_OFF); //กำหนดค่า Power PWM pin B0,B1 ในโหมด Complementary
setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN,1,0,period,0,1,0);
//กำหนดโหมดการทำงาน (ดูรายละเอียดเพิ่มเติม)
while(true){
set_power_pwm0_duty(500 * ((period>>8)+1)); //ตั้งค่า PWM 19.45kHz duty cycle 50% pin B0,B1 invert กัน
}
}