User manual

mikroPascal PRO for dsPIC30/33 and PIC24
MikroElektronika
432
PWM_Init
PWM_Set_Duty
Prototype
function PWM_Init(freq_hz : longint; enable_channel_x, timer_prescale, use_
timer_x : word) : word;
// 30F1010 and dsPIC33FJ06GS101/102/202 prototype
function PWM_Init(freq_hz : longint; enable_channel_x, timer_prescale) :
word;
Description Initializes the PWM module with duty ratio 0.
Parameters - freq_hz: PWM frequency in Hz (refer to device datasheet for correct values in respect with Fosc)
- enable_channel_x: number of PWM channel to be initialized. Refer to MCU’s datasheet for
available PWM channels
- timer_prescale: timer prescaler parameter. Valid values: 1, 8, 64, and 256
- use_timer_x: timer to be used with the PWM module. Valid values: 2 (Timer2) and 3 (Timer3)
Returns - 0xFFFF - if timer settings are not valid
- otherwise returns calculated timer period
Requires MCU must have the HW PWM Module.
Example
// Initializes the PWM module at 5KHz, channel 1, no clock prescale, timer2
:
var pwm_period1 : word;
...
pwm_period1 := PWM_Init(5000, 1, 0, 2);
Notes Number of available PWM channels depends on MCU. Refer to MCU datasheet for details.
Prototype
procedure PWM_Set_Duty(duty, channel : word);
Description The function changes PWM duty ratio.
Parameters - duty: PWM duty ratio. Valid values: 0 to timer period returned by the PWM_Init function.
- channel: number of PWM channel to change duty to.
Returns Nothing.
Requires MCU must have the HW PWM Module.
PWM channel must be properly initialized. See PWM_Init routine.
Example
// Set channel 1 duty ratio to 50%:
var pwm_period1 : word;
...
PWM_Set_Duty(pwm_period1 div 2, 1);
Notes Number of available PWM channels depends on MCU. Refer to MCU datasheet for details.