RTEMS  5.0.0
pwmc.h
Go to the documentation of this file.
1 /* ---------------------------------------------------------------------------- */
2 /* Atmel Microcontroller Software Support */
3 /* SAM Software Package License */
4 /* ---------------------------------------------------------------------------- */
5 /* Copyright (c) 2015, Atmel Corporation */
6 /* */
7 /* All rights reserved. */
8 /* */
9 /* Redistribution and use in source and binary forms, with or without */
10 /* modification, are permitted provided that the following condition is met: */
11 /* */
12 /* - Redistributions of source code must retain the above copyright notice, */
13 /* this list of conditions and the disclaimer below. */
14 /* */
15 /* Atmel's name may not be used to endorse or promote products derived from */
16 /* this software without specific prior written permission. */
17 /* */
18 /* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28 /* ---------------------------------------------------------------------------- */
29 
61 #ifndef _PWMC_
62 #define _PWMC_
63 
64 /*----------------------------------------------------------------------------
65  * Headers
66  *----------------------------------------------------------------------------*/
67 
68 #include "chip.h"
69 
70 #include <stdint.h>
71 
72 #ifdef __cplusplus
73 extern "C" {
74 #endif
75 
76 /*----------------------------------------------------------------------------
77  * Exported functions
78  *----------------------------------------------------------------------------*/
79 
80 extern void PWMC_ConfigureChannel(
81  Pwm *pPwm,
82  uint8_t channel,
83  uint32_t prescaler,
84  uint32_t alignment,
85  uint32_t polarity);
86 extern void PWMC_ConfigureChannelExt(
87  Pwm *pPwm,
88  uint8_t channel,
89  uint32_t prescaler,
90  uint32_t alignment,
91  uint32_t polarity,
92  uint32_t countEventSelect,
93  uint32_t DTEnable,
94  uint32_t DTHInverte,
95  uint32_t DTLInverte);
96 extern void PWMC_ConfigureClocks(Pwm *pPwm, uint32_t clka, uint32_t clkb,
97  uint32_t mck);
98 extern void PWMC_SetPeriod(Pwm *pPwm, uint8_t channel, uint16_t period);
99 extern void PWMC_SetDutyCycle(Pwm *pPwm, uint8_t channel, uint16_t duty);
100 extern void PWMC_SetDeadTime(Pwm *pPwm, uint8_t channel, uint16_t timeH,
101  uint16_t timeL);
102 extern void PWMC_ConfigureSyncChannel(Pwm *pPwm,
103  uint32_t channels,
104  uint32_t updateMode,
105  uint32_t requestMode,
106  uint32_t requestComparisonSelect);
107 extern void PWMC_SetSyncChannelUpdatePeriod(Pwm *pPwm, uint8_t period);
108 extern void PWMC_SetSyncChannelUpdateUnlock(Pwm *pPwm);
109 extern void PWMC_EnableChannel(Pwm *pPwm, uint8_t channel);
110 extern void PWMC_DisableChannel(Pwm *pPwm, uint8_t channel);
111 extern void PWMC_EnableChannelIt(Pwm *pPwm, uint8_t channel);
112 extern void PWMC_DisableChannelIt(Pwm *pPwm, uint8_t channel);
113 extern void PWMC_EnableIt(Pwm *pPwm, uint32_t sources1, uint32_t sources2);
114 extern void PWMC_DisableIt(Pwm *pPwm, uint32_t sources1, uint32_t sources2);
115 extern uint8_t PWMC_WriteBuffer(Pwm *pwmc,
116  void *buffer,
117  uint32_t length);
118 extern void PWMC_SetOverrideValue(Pwm *pPwm, uint32_t value);
119 extern void PWMC_EnableOverrideOutput(Pwm *pPwm, uint32_t value,
120  uint32_t sync);
121 extern void PWMC_OutputOverrideSelection(Pwm *pPwm, uint32_t value);
122 extern void PWMC_DisableOverrideOutput(Pwm *pPwm, uint32_t value,
123  uint32_t sync);
124 extern void PWMC_SetFaultMode(Pwm *pPwm, uint32_t mode);
125 extern void PWMC_FaultClear(Pwm *pPwm, uint32_t fault);
126 extern void PWMC_SetFaultProtectionValue(Pwm *pPwm, uint32_t value);
127 extern void PWMC_EnableFaultProtection(Pwm *pPwm, uint32_t value);
128 extern void PWMC_ConfigureComparisonUnit(Pwm *pPwm, uint32_t x,
129  uint32_t value, uint32_t mode);
130 extern void PWMC_ConfigureEventLineMode(Pwm *pPwm, uint32_t x, uint32_t mode);
131 extern uint32_t PWMC_GetStatus2(Pwm *pPwm);
132 #ifdef __cplusplus
133 }
134 #endif
135 
136 #endif /* #ifndef _PWMC_ */
137 
void PWMC_DisableChannel(Pwm *pPwm, uint8_t channel)
Disables the given PWM channel.
Definition: pwmc.c:393
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 mus...
Definition: pwmc.c:186
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.
Definition: pwmc.c:146
Definition: component_pwm.h:61
void PWMC_ConfigureEventLineMode(Pwm *pPwm, uint32_t x, uint32_t mode)
Configure event line mode.
Definition: pwmc.c:571
void sync(void)
Definition: sync.c:85
uint32_t PWMC_GetStatus2(Pwm *pPwm)
Return PWM Interrupt Status2 Register.
Definition: pwmc.c:412
void PWMC_SetFaultMode(Pwm *pPwm, uint32_t mode)
Set PWM fault mode.
Definition: pwmc.c:507
void PWMC_ConfigureComparisonUnit(Pwm *pPwm, uint32_t x, uint32_t value, uint32_t mode)
Configure comparison unit.
Definition: pwmc.c:549
void PWMC_SetOverrideValue(Pwm *pPwm, uint32_t value)
Set PWM output override value.
Definition: pwmc.c:456
void PWMC_DisableOverrideOutput(Pwm *pPwm, uint32_t value, uint32_t sync)
Disable override output.
Definition: pwmc.c:492
void PWMC_EnableOverrideOutput(Pwm *pPwm, uint32_t value, uint32_t sync)
Enable override output.
Definition: pwmc.c:467
void PWMC_SetFaultProtectionValue(Pwm *pPwm, uint32_t value)
Set PWM fault protection value.
Definition: pwmc.c:527
void PWMC_SetPeriod(Pwm *pPwm, uint8_t channel, uint16_t period)
Sets the period value used by a PWM channel.
Definition: pwmc.c:259
void PWMC_EnableChannelIt(Pwm *pPwm, uint8_t channel)
Enables the period interrupt for the given PWM channel.
Definition: pwmc.c:403
void PWMC_EnableIt(Pwm *pPwm, uint32_t sources1, uint32_t sources2)
Enables the selected interrupts sources on a PWMC peripheral.
Definition: pwmc.c:433
void PWMC_OutputOverrideSelection(Pwm *pPwm, uint32_t value)
Output Selection for override PWM output.
Definition: pwmc.c:480
void PWMC_DisableIt(Pwm *pPwm, uint32_t sources1, uint32_t sources2)
Disables the selected interrupts sources on a PWMC peripheral.
Definition: pwmc.c:445
void PWMC_SetSyncChannelUpdatePeriod(Pwm *pPwm, uint8_t period)
Sets the update period of the synchronous channels. This function writes directly to the SCUP registe...
Definition: pwmc.c:345
void PWMC_EnableFaultProtection(Pwm *pPwm, uint32_t value)
Enable PWM fault protection.
Definition: pwmc.c:537
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 b...
Definition: pwmc.c:329
void PWMC_FaultClear(Pwm *pPwm, uint32_t fault)
PWM fault clear.
Definition: pwmc.c:517
void PWMC_SetSyncChannelUpdateUnlock(Pwm *pPwm)
Sets synchronous channels update unlock.
Definition: pwmc.c:367
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.
Definition: pwmc.c:226
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 ...
Definition: pwmc.c:281
void PWMC_EnableChannel(Pwm *pPwm, uint8_t channel)
Enables the given PWM channel.
Definition: pwmc.c:379
void PWMC_DisableChannelIt(Pwm *pPwm, uint8_t channel)
Disables the period interrupt for the given PWM channel.
Definition: pwmc.c:422
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 cha...
Definition: pwmc.c:305