source: rtems/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/pwmc.h @ e1eeb883

5
Last change on this file since e1eeb883 was e1eeb883, checked in by Sebastian Huber <sebastian.huber@…>, on 01/12/16 at 14:34:31

bsp/atsam: Import SAM Software Package

Import selected files of the "SAM V71 / V70 / E70 / S70 Software
Package" obtained from the "SAMV71-XULT GNU Software Package 1.5".

Converted files via dos2unix before import.

Update #2529.

  • Property mode set to 100644
File size: 6.3 KB
Line 
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
30/**
31 * \file
32 *
33 * \par Purpose
34 *
35 * Interface for configuration the Pulse Width Modulation Controller (PWM)
36 * peripheral.
37 *
38 * \par Usage
39 *
40 *    -# Configures PWM clocks A & B to run at the given frequencies using
41 *       \ref PWMC_ConfigureClocks().
42 *    -# Configure PWMC channel using \ref PWMC_ConfigureChannel(),
43 * \ref PWMC_ConfigureChannelExt()
44 *       \ref PWMC_SetPeriod(), \ref PWMC_SetDutyCycle() and
45 * \ref PWMC_SetDeadTime().
46 *    -# Enable & disable channel using \ref PWMC_EnableChannel() and
47 *       \ref PWMC_DisableChannel().
48 *    -# Enable & disable the period interrupt for the given PWM channel using
49 *       \ref PWMC_EnableChannelIt() and \ref PWMC_DisableChannelIt().
50 *    -# Enable & disable the selected interrupts sources on a PWMC peripheral
51 *       using  \ref PWMC_EnableIt() and \ref PWMC_DisableIt().
52 *    -# Control synchronous channel using \ref PWMC_ConfigureSyncChannel(),
53 *       \ref PWMC_SetSyncChannelUpdatePeriod() and
54 * \ref PWMC_SetSyncChannelUpdateUnlock().
55 *    -# Control PWM override output using \ref PWMC_SetOverrideValue(),
56 *       \ref PWMC_EnableOverrideOutput() and \ref PWMC_DisableOverrideOutput().
57 *    -# Send data through the transmitter using \ref PWMC_WriteBuffer().
58 *
59 */
60
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
Note: See TracBrowser for help on using the repository browser.