#include "chip.h"
#include <stdint.h>
#include <assert.h>
Go to the source code of this file.
Functions | |
void | PWMC_ConfigureChannel (Pwm *pPwm, uint8_t channel, uint32_t prescaler, uint32_t alignment, uint32_t polarity) |
Configures PWM a channel with the given parameters, basic configure function. | |
void | PWMC_ConfigureChannelExt (Pwm *pPwm, uint8_t channel, uint32_t prescaler, uint32_t alignment, uint32_t polarity, uint32_t countEventSelect, uint32_t DTEnable, uint32_t DTHInverte, uint32_t DTLInverte) |
Configures PWM a channel with the given parameters, extend configure function. The PWM controller must have been clocked in the PMC prior to calling this function. Beware: this function disables the channel. It waits until disable is effective. | |
void | PWMC_ConfigureClocks (Pwm *pPwm, uint32_t clka, uint32_t clkb, uint32_t mck) |
Configures PWM clocks A & B to run at the given frequencies. | |
void | PWMC_SetPeriod (Pwm *pPwm, uint8_t channel, uint16_t period) |
Sets the period value used by a PWM channel. | |
void | PWMC_SetDutyCycle (Pwm *pPwm, uint8_t channel, uint16_t duty) |
Sets the duty cycle used by a PWM channel. This function writes directly to the CDTY register if the channel is disabled; otherwise it uses the update register CDTYUPD. Note that the duty cycle must always be inferior or equal to the channel period. | |
void | PWMC_SetDeadTime (Pwm *pPwm, uint8_t channel, uint16_t timeH, uint16_t timeL) |
Sets the dead time used by a PWM channel. This function writes directly to the DT register if the channel is disabled; otherwise it uses the update register DTUPD. Note that the dead time must always be inferior or equal to the channel period. | |
void | PWMC_ConfigureSyncChannel (Pwm *pPwm, uint32_t channels, uint32_t updateMode, uint32_t requestMode, uint32_t requestComparisonSelect) |
Configures Synchronous channel with the given parameters. Beware: At this time, the channels should be disabled. | |
void | PWMC_SetSyncChannelUpdatePeriod (Pwm *pPwm, uint8_t period) |
Sets the update period of the synchronous channels. This function writes directly to the SCUP register if the channel #0 is disabled; otherwise it uses the update register SCUPUPD. | |
void | PWMC_SetSyncChannelUpdateUnlock (Pwm *pPwm) |
Sets synchronous channels update unlock. | |
void | PWMC_EnableChannel (Pwm *pPwm, uint8_t channel) |
Enables the given PWM channel. | |
void | PWMC_DisableChannel (Pwm *pPwm, uint8_t channel) |
Disables the given PWM channel. | |
void | PWMC_EnableChannelIt (Pwm *pPwm, uint8_t channel) |
Enables the period interrupt for the given PWM channel. | |
uint32_t | PWMC_GetStatus2 (Pwm *pPwm) |
Return PWM Interrupt Status2 Register. | |
void | PWMC_DisableChannelIt (Pwm *pPwm, uint8_t channel) |
Disables the period interrupt for the given PWM channel. | |
void | PWMC_EnableIt (Pwm *pPwm, uint32_t sources1, uint32_t sources2) |
Enables the selected interrupts sources on a PWMC peripheral. | |
void | PWMC_DisableIt (Pwm *pPwm, uint32_t sources1, uint32_t sources2) |
Disables the selected interrupts sources on a PWMC peripheral. | |
void | PWMC_SetOverrideValue (Pwm *pPwm, uint32_t value) |
Set PWM output override value. | |
void | PWMC_EnableOverrideOutput (Pwm *pPwm, uint32_t value, uint32_t sync) |
Enable override output. | |
void | PWMC_OutputOverrideSelection (Pwm *pPwm, uint32_t value) |
Output Selection for override PWM output. | |
void | PWMC_DisableOverrideOutput (Pwm *pPwm, uint32_t value, uint32_t sync) |
Disable override output. | |
void | PWMC_SetFaultMode (Pwm *pPwm, uint32_t mode) |
Set PWM fault mode. | |
void | PWMC_FaultClear (Pwm *pPwm, uint32_t fault) |
PWM fault clear. | |
void | PWMC_SetFaultProtectionValue (Pwm *pPwm, uint32_t value) |
Set PWM fault protection value. | |
void | PWMC_EnableFaultProtection (Pwm *pPwm, uint32_t value) |
Enable PWM fault protection. | |
void | PWMC_ConfigureComparisonUnit (Pwm *pPwm, uint32_t x, uint32_t value, uint32_t mode) |
Configure comparison unit. | |
void | PWMC_ConfigureEventLineMode (Pwm *pPwm, uint32_t x, uint32_t mode) |
Configure event line mode. |
Implementation of the Pulse Width Modulation Controller (PWM) peripheral.
Definition in file pwmc.c.
void PWMC_ConfigureChannel | ( | Pwm * | pPwm, | |
uint8_t | channel, | |||
uint32_t | prescaler, | |||
uint32_t | alignment, | |||
uint32_t | polarity | |||
) |
Configures PWM a channel with the given parameters, basic configure function.
The PWM controller must have been clocked in the PMC prior to calling this function. Beware: this function disables the channel. It waits until disable is effective.
channel | Channel number. | |
prescaler | Channel prescaler. | |
alignment | Channel alignment. | |
polarity | Channel polarity. |
void PWMC_ConfigureChannelExt | ( | Pwm * | pPwm, | |
uint8_t | channel, | |||
uint32_t | prescaler, | |||
uint32_t | alignment, | |||
uint32_t | polarity, | |||
uint32_t | countEventSelect, | |||
uint32_t | DTEnable, | |||
uint32_t | DTHInverte, | |||
uint32_t | DTLInverte | |||
) |
Configures PWM a channel with the given parameters, extend configure function. The PWM controller must have been clocked in the PMC prior to calling this function. Beware: this function disables the channel. It waits until disable is effective.
channel | Channel number. | |
prescaler | Channel prescaler. | |
alignment | Channel alignment. | |
polarity | Channel polarity. | |
countEventSelect | Channel counter event selection. | |
DTEnable | Channel dead time generator enable. | |
DTHInverte | Channel Dead-Time PWMHx output Inverted. | |
DTLInverte | Channel Dead-Time PWMHx output Inverted. |
void PWMC_ConfigureClocks | ( | Pwm * | pPwm, | |
uint32_t | clka, | |||
uint32_t | clkb, | |||
uint32_t | mck | |||
) |
Configures PWM clocks A & B to run at the given frequencies.
This function finds the best MCK divisor and prescaler values automatically.
clka | Desired clock A frequency (0 if not used). | |
clkb | Desired clock B frequency (0 if not used). | |
mck | Master clock frequency. |
void PWMC_ConfigureComparisonUnit | ( | Pwm * | pPwm, | |
uint32_t | x, | |||
uint32_t | value, | |||
uint32_t | mode | |||
) |
void PWMC_ConfigureEventLineMode | ( | Pwm * | pPwm, | |
uint32_t | x, | |||
uint32_t | mode | |||
) |
void PWMC_ConfigureSyncChannel | ( | Pwm * | pPwm, | |
uint32_t | channels, | |||
uint32_t | updateMode, | |||
uint32_t | requestMode, | |||
uint32_t | requestComparisonSelect | |||
) |
Configures Synchronous channel with the given parameters. Beware: At this time, the channels should be disabled.
channels | Bitwise OR of Synchronous channels. | |
updateMode | Synchronous channel update mode. | |
requestMode | PDC transfer request mode. | |
requestComparisonSelect | PDC transfer request comparison selection. |
void PWMC_DisableChannel | ( | Pwm * | pPwm, | |
uint8_t | channel | |||
) |
Disables the given PWM channel.
Beware, channel will be effectively disabled at the end of the current period. Application can check channel is disabled using the following wait loop: while ((PWM->PWM_SR & (1 << channel)) != 0);
channel | Channel number. |
void PWMC_DisableChannelIt | ( | Pwm * | pPwm, | |
uint8_t | channel | |||
) |
void PWMC_DisableIt | ( | Pwm * | pPwm, | |
uint32_t | sources1, | |||
uint32_t | sources2 | |||
) |
void PWMC_DisableOverrideOutput | ( | Pwm * | pPwm, | |
uint32_t | value, | |||
uint32_t | sync | |||
) |
void PWMC_EnableChannel | ( | Pwm * | pPwm, | |
uint8_t | channel | |||
) |
void PWMC_EnableChannelIt | ( | Pwm * | pPwm, | |
uint8_t | channel | |||
) |
void PWMC_EnableFaultProtection | ( | Pwm * | pPwm, | |
uint32_t | value | |||
) |
void PWMC_EnableIt | ( | Pwm * | pPwm, | |
uint32_t | sources1, | |||
uint32_t | sources2 | |||
) |
void PWMC_EnableOverrideOutput | ( | Pwm * | pPwm, | |
uint32_t | value, | |||
uint32_t | sync | |||
) |
void PWMC_FaultClear | ( | Pwm * | pPwm, | |
uint32_t | fault | |||
) |
void PWMC_OutputOverrideSelection | ( | Pwm * | pPwm, | |
uint32_t | value | |||
) |
void PWMC_SetDeadTime | ( | Pwm * | pPwm, | |
uint8_t | channel, | |||
uint16_t | timeH, | |||
uint16_t | timeL | |||
) |
Sets the dead time used by a PWM channel. This function writes directly to the DT register if the channel is disabled; otherwise it uses the update register DTUPD. Note that the dead time must always be inferior or equal to the channel period.
channel | Channel number. | |
timeH | Dead time value for PWMHx output. | |
timeL | Dead time value for PWMLx output. |
void PWMC_SetDutyCycle | ( | Pwm * | pPwm, | |
uint8_t | channel, | |||
uint16_t | duty | |||
) |
Sets the duty cycle used by a PWM channel. This function writes directly to the CDTY register if the channel is disabled; otherwise it uses the update register CDTYUPD. Note that the duty cycle must always be inferior or equal to the channel period.
channel | Channel number. | |
duty | Duty cycle value. |
void PWMC_SetFaultMode | ( | Pwm * | pPwm, | |
uint32_t | mode | |||
) |
void PWMC_SetFaultProtectionValue | ( | Pwm * | pPwm, | |
uint32_t | value | |||
) |
void PWMC_SetOverrideValue | ( | Pwm * | pPwm, | |
uint32_t | value | |||
) |
void PWMC_SetPeriod | ( | Pwm * | pPwm, | |
uint8_t | channel, | |||
uint16_t | period | |||
) |
void PWMC_SetSyncChannelUpdatePeriod | ( | Pwm * | pPwm, | |
uint8_t | period | |||
) |
void PWMC_SetSyncChannelUpdateUnlock | ( | Pwm * | pPwm | ) |
Sets synchronous channels update unlock.
Note: If the UPDM field is set to 0, writing the UPDULOCK bit to 1 triggers the update of the period value, the duty-cycle and the dead-time values of synchronous channels at the beginning of the next PWM period. If the field UPDM is set to 1 or 2, writing the UPDULOCK bit to 1 triggers only the update of the period value and of the dead-time values of synchronous channels. This bit is automatically reset when the update is done.