RTEMS 6.1-rc1
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
73extern "C" {
74#endif
75
76/*----------------------------------------------------------------------------
77 * Exported functions
78 *----------------------------------------------------------------------------*/
79
80extern void PWMC_ConfigureChannel(
81 Pwm *pPwm,
82 uint8_t channel,
83 uint32_t prescaler,
84 uint32_t alignment,
85 uint32_t polarity);
86extern 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);
96extern void PWMC_ConfigureClocks(Pwm *pPwm, uint32_t clka, uint32_t clkb,
97 uint32_t mck);
98extern void PWMC_SetPeriod(Pwm *pPwm, uint8_t channel, uint16_t period);
99extern void PWMC_SetDutyCycle(Pwm *pPwm, uint8_t channel, uint16_t duty);
100extern void PWMC_SetDeadTime(Pwm *pPwm, uint8_t channel, uint16_t timeH,
101 uint16_t timeL);
102extern void PWMC_ConfigureSyncChannel(Pwm *pPwm,
103 uint32_t channels,
104 uint32_t updateMode,
105 uint32_t requestMode,
106 uint32_t requestComparisonSelect);
107extern void PWMC_SetSyncChannelUpdatePeriod(Pwm *pPwm, uint8_t period);
108extern void PWMC_SetSyncChannelUpdateUnlock(Pwm *pPwm);
109extern void PWMC_EnableChannel(Pwm *pPwm, uint8_t channel);
110extern void PWMC_DisableChannel(Pwm *pPwm, uint8_t channel);
111extern void PWMC_EnableChannelIt(Pwm *pPwm, uint8_t channel);
112extern void PWMC_DisableChannelIt(Pwm *pPwm, uint8_t channel);
113extern void PWMC_EnableIt(Pwm *pPwm, uint32_t sources1, uint32_t sources2);
114extern void PWMC_DisableIt(Pwm *pPwm, uint32_t sources1, uint32_t sources2);
115extern uint8_t PWMC_WriteBuffer(Pwm *pwmc,
116 void *buffer,
117 uint32_t length);
118extern void PWMC_SetOverrideValue(Pwm *pPwm, uint32_t value);
119extern void PWMC_EnableOverrideOutput(Pwm *pPwm, uint32_t value,
120 uint32_t sync);
121extern void PWMC_OutputOverrideSelection(Pwm *pPwm, uint32_t value);
122extern void PWMC_DisableOverrideOutput(Pwm *pPwm, uint32_t value,
123 uint32_t sync);
124extern void PWMC_SetFaultMode(Pwm *pPwm, uint32_t mode);
125extern void PWMC_FaultClear(Pwm *pPwm, uint32_t fault);
126extern void PWMC_SetFaultProtectionValue(Pwm *pPwm, uint32_t value);
127extern void PWMC_EnableFaultProtection(Pwm *pPwm, uint32_t value);
128extern void PWMC_ConfigureComparisonUnit(Pwm *pPwm, uint32_t x,
129 uint32_t value, uint32_t mode);
130extern void PWMC_ConfigureEventLineMode(Pwm *pPwm, uint32_t x, uint32_t mode);
131extern uint32_t PWMC_GetStatus2(Pwm *pPwm);
132#ifdef __cplusplus
133}
134#endif
135
136#endif /* #ifndef _PWMC_ */
137
void PWMC_OutputOverrideSelection(Pwm *pPwm, uint32_t value)
Output Selection for override PWM output.
Definition: pwmc.c:480
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_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_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
uint32_t PWMC_GetStatus2(Pwm *pPwm)
Return PWM Interrupt Status2 Register.
Definition: pwmc.c:412
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
void PWMC_SetOverrideValue(Pwm *pPwm, uint32_t value)
Set PWM output override value.
Definition: pwmc.c:456
void PWMC_DisableChannelIt(Pwm *pPwm, uint8_t channel)
Disables the period interrupt for the given PWM channel.
Definition: pwmc.c:422
void PWMC_EnableOverrideOutput(Pwm *pPwm, uint32_t value, uint32_t sync)
Enable override output.
Definition: pwmc.c:467
void PWMC_EnableChannel(Pwm *pPwm, uint8_t channel)
Enables the given PWM channel.
Definition: pwmc.c:379
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_DisableChannel(Pwm *pPwm, uint8_t channel)
Disables the given PWM channel.
Definition: pwmc.c:393
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_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_ConfigureComparisonUnit(Pwm *pPwm, uint32_t x, uint32_t value, uint32_t mode)
Configure comparison unit.
Definition: pwmc.c:549
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_EnableChannelIt(Pwm *pPwm, uint8_t channel)
Enables the period interrupt for the given PWM channel.
Definition: pwmc.c:403
void PWMC_SetFaultProtectionValue(Pwm *pPwm, uint32_t value)
Set PWM fault protection value.
Definition: pwmc.c:527
void PWMC_SetFaultMode(Pwm *pPwm, uint32_t mode)
Set PWM fault mode.
Definition: pwmc.c:507
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_ConfigureEventLineMode(Pwm *pPwm, uint32_t x, uint32_t mode)
Configure event line mode.
Definition: pwmc.c:571
void PWMC_DisableOverrideOutput(Pwm *pPwm, uint32_t value, uint32_t sync)
Disable override output.
Definition: pwmc.c:492
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_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
void PWMC_EnableFaultProtection(Pwm *pPwm, uint32_t value)
Enable PWM fault protection.
Definition: pwmc.c:537
Definition: component_pwm.h:61