
The example shows the realization of continuously varying pulse width modulation (PWM). The continously modulated output is on the PORTE.0 pin which is monitored by a LED diode. The realization is carried out by using the mikroBasic compiler for dsPIC30F microcontrollers. Fig. 13-6 shows the electric diagram of the realized continuous PWM of a LED diode connected to PORTE.0.
program MC_PWM_Test
dim i, duty_50 as word
main:
ADPCFG = 0xFFFF
TRISE = 0
PORTB = 0xAAAA
TRISB = 0
Delay_ms(1000)
duty_50 = Pwm_Mc_Init(5000,1,0x01,0) ' Pwm_Mc_Init returns 50% of the duty
i = duty_50
Pwm_Mc_Set_Duty(i, 1)
Pwm_Mc_Start()
while true
i = i - 1
Pwm_Mc_Set_Duty(i,1)
Delay_ms(1)
if (i = 0) then
i = duty_50 * 2 - 1 ' Do not allow the overflow
end if
PORTB = i
wend
end.