CCAux 2.19.0.0
CCAux API reference
PWMOut.h
Go to the documentation of this file.
1
2/*
3 * Copyright (C) 2010-2023 CrossControl AB - All rights reserved
4 *
5 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 *
7 * This source code is licensed under the proprietary CrossControl software
8 * license v 1.0. Please refer to the software license text for details or
9 * contact info@crosscontrol.com for more info.
10 *
11 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12 */
13/*
14 * File description:
15 * PWM Output
16 *
17 * Use the function GetPWMOut() to get a handle to pass on to the other functions.
18 * Use the method PWMOut_release(PWMOUTHANDLE) to release the handle.
19 *
20 * Note: The rise and fall times of the hardware limits the signal's usefulness in high frequencies.
21 * The duty cycle of the PWM signal affects the maximum attainable frequency: at 50% duty cycle, the attainable
22 * frequecy is at it's maximum. If the duty cycle is near 0 or 100%, the rise/fall times of the signal means that the
23 * maximum attainable frequency is significantly lower. A PWM signal is generated when both the frequency and the duty
24 * cycle of a channel is not zero.
25 *
26 * Example Usage:
27 * @include pwmout_example.cpp
28 *
29 ************************************************/
30#ifndef CC_PWMOUT_H
31#define CC_PWMOUT_H
32
33#include "CCAuxErrors.h"
34#include "CCPlatform.h"
35
36#ifdef __cplusplus
37namespace CrossControl
38{
39#endif
40
41typedef void *PWMOUTHANDLE;
42
62EXTERN_C
63CCAUXDLL_API
65CCAUXDLL_CALLING_CONV
67
78EXTERN_C
79CCAUXDLL_API
80void CCAUXDLL_CALLING_CONV PWMOut_release(PWMOUTHANDLE);
81
95EXTERN_C
96CCAUXDLL_API
97eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutputChannelDutyCycle(PWMOUTHANDLE, uint8_t channel, uint16_t duty_cycle);
98
112EXTERN_C
113CCAUXDLL_API
114eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutputChannelFrequency(PWMOUTHANDLE, uint8_t channel, float32_t frequency);
115
129EXTERN_C
130CCAUXDLL_API
131eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputChannelDutyCycle(PWMOUTHANDLE, uint8_t channel, uint16_t *duty_cycle);
132
146EXTERN_C
147CCAUXDLL_API
148eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputChannelFrequency(PWMOUTHANDLE, uint8_t channel, float32_t *frequency);
149
165EXTERN_C
166CCAUXDLL_API
167eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputStatus(PWMOUTHANDLE, uint16_t *status);
189EXTERN_C
190CCAUXDLL_API
191eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputStatus2(PWMOUTHANDLE, uint8_t channel, uint16_t *status);
192
206EXTERN_C
207CCAUXDLL_API
208eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutOff(PWMOUTHANDLE, uint8_t channel);
209
222EXTERN_C
223CCAUXDLL_API
224eErr CCAUXDLL_CALLING_CONV PWMOut_getActiveIomcu(PWMOUTHANDLE, uint8_t *ioindex);
225
238EXTERN_C
239CCAUXDLL_API
240eErr CCAUXDLL_CALLING_CONV PWMOut_setActiveIomcu(PWMOUTHANDLE, uint8_t ioindex);
241
257EXTERN_C
258CCAUXDLL_API
259eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputPU(PWMOUTHANDLE, uint8_t channel, uint16_t *status);
260
276EXTERN_C
277CCAUXDLL_API
278eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutputPU(PWMOUTHANDLE, uint8_t channel, uint16_t status);
280#ifdef __cplusplus
281} /* namespace CrossControl */
282#endif
283
284#endif /* CC_PWMOUT_H */
unsigned short uint16_t
Definition: CCAuxTypes.h:38
float float32_t
Definition: CCAuxTypes.h:15
unsigned char uint8_t
Definition: CCAuxTypes.h:37
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutputChannelFrequency(PWMOUTHANDLE, uint8_t channel, float32_t frequency)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutputChannelDutyCycle(PWMOUTHANDLE, uint8_t channel, uint16_t duty_cycle)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputStatus2(PWMOUTHANDLE, uint8_t channel, uint16_t *status)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputChannelFrequency(PWMOUTHANDLE, uint8_t channel, float32_t *frequency)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputChannelDutyCycle(PWMOUTHANDLE, uint8_t channel, uint16_t *duty_cycle)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputPU(PWMOUTHANDLE, uint8_t channel, uint16_t *status)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_getActiveIomcu(PWMOUTHANDLE, uint8_t *ioindex)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_getPWMOutputStatus(PWMOUTHANDLE, uint16_t *status)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutputPU(PWMOUTHANDLE, uint8_t channel, uint16_t status)
EXTERN_C CCAUXDLL_API PWMOUTHANDLE CCAUXDLL_CALLING_CONV GetPWMOut(void)
EXTERN_C CCAUXDLL_API void CCAUXDLL_CALLING_CONV PWMOut_release(PWMOUTHANDLE)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_setPWMOutOff(PWMOUTHANDLE, uint8_t channel)
EXTERN_C CCAUXDLL_API eErr CCAUXDLL_CALLING_CONV PWMOut_setActiveIomcu(PWMOUTHANDLE, uint8_t ioindex)
Definition: About.h:33
void * PWMOUTHANDLE
Definition: PWMOut.h:41
eErr
Definition: CCAuxTypes.h:162