no-OS
Loading...
Searching...
No Matches
no_os_pwm.h File Reference

Header file of PWM Interface. More...

#include <stdint.h>
#include <stdbool.h>
Include dependency graph for no_os_pwm.h:

Classes

struct  no_os_pwm_init_param
 Structure containing the init parameters needed by the PWM generator. More...
 
struct  no_os_pwm_desc
 Structure representing an PWM generator device. More...
 
struct  no_os_pwm_platform_ops
 Structure holding PWM function pointers that point to the platform specific function. More...
 

Macros

#define PWM_MAX_NUMBER   4
 

Enumerations

enum  no_os_pwm_polarity {
  NO_OS_PWM_POLARITY_HIGH ,
  NO_OS_PWM_POLARITY_LOW
}
 Possible polarities of the PWM signal. More...
 

Functions

int32_t no_os_pwm_init (struct no_os_pwm_desc **desc, const struct no_os_pwm_init_param *param)
 Initialize the PWM peripheral.
 
int32_t no_os_pwm_remove (struct no_os_pwm_desc *desc)
 Free the resources allocated by no_os_pwm_init().
 
int32_t no_os_pwm_enable (struct no_os_pwm_desc *desc)
 Enable PWM signal generation.
 
int32_t no_os_pwm_disable (struct no_os_pwm_desc *desc)
 Disable PWM signal generation.
 
int32_t no_os_pwm_set_period (struct no_os_pwm_desc *desc, uint32_t period_ns)
 Set the PWM period value.
 
int32_t no_os_pwm_get_period (struct no_os_pwm_desc *desc, uint32_t *period_ns)
 Get the PWM period value.
 
int32_t no_os_pwm_set_duty_cycle (struct no_os_pwm_desc *desc, uint32_t duty_cycle_ns)
 Set the PWM duty cycle.
 
int32_t no_os_pwm_get_duty_cycle (struct no_os_pwm_desc *desc, uint32_t *duty_cycle_ns)
 Get the PWM duty cycle.
 
int32_t no_os_pwm_set_phase (struct no_os_pwm_desc *desc, uint32_t phase_ns)
 Set the PWM phase value.
 
int32_t no_os_pwm_get_phase (struct no_os_pwm_desc *desc, uint32_t *phase_ns)
 Get the PWM phase value.
 
int32_t no_os_pwm_set_polarity (struct no_os_pwm_desc *desc, enum no_os_pwm_polarity polarity)
 Set the PWM polarity.
 
int32_t no_os_pwm_get_polarity (struct no_os_pwm_desc *desc, enum no_os_pwm_polarity *polarity)
 Get the PWM polarity.
 

Detailed Description

Header file of PWM Interface.

Author
Cristian Pop (crist.nosp@m.ian..nosp@m.pop@a.nosp@m.nalo.nosp@m.g.com)

Copyright 2020(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Macro Definition Documentation

◆ PWM_MAX_NUMBER

#define PWM_MAX_NUMBER   4

Enumeration Type Documentation

◆ no_os_pwm_polarity

Possible polarities of the PWM signal.

Enumerator
NO_OS_PWM_POLARITY_HIGH 

PWM duty cycle is high, idle low

NO_OS_PWM_POLARITY_LOW 

PWM duty cycle is low, idle high

Function Documentation

◆ no_os_pwm_disable()

int32_t no_os_pwm_disable ( struct no_os_pwm_desc * desc)

Disable PWM signal generation.

Parameters
desc- The PWM descriptor.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_enable()

int32_t no_os_pwm_enable ( struct no_os_pwm_desc * desc)

Enable PWM signal generation.

Parameters
desc- The PWM descriptor.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_get_duty_cycle()

int32_t no_os_pwm_get_duty_cycle ( struct no_os_pwm_desc * desc,
uint32_t * duty_cycle_ns )

Get the PWM duty cycle.

Parameters
desc- The PWM descriptor.
duty_cycle_ns- Duty cycle in nanoseconds.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_get_period()

int32_t no_os_pwm_get_period ( struct no_os_pwm_desc * desc,
uint32_t * period_ns )

Get the PWM period value.

Parameters
desc- The PWM descriptor.
period_ns- The period value in nanoseconds.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_get_phase()

int32_t no_os_pwm_get_phase ( struct no_os_pwm_desc * desc,
uint32_t * phase_ns )

Get the PWM phase value.

Parameters
desc- The PWM descriptor.
phase_ns- Phase value in nanoseconds.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_get_polarity()

int32_t no_os_pwm_get_polarity ( struct no_os_pwm_desc * desc,
enum no_os_pwm_polarity * polarity )

Get the PWM polarity.

Parameters
desc- The PWM descriptor.
polarity- Polarity value. Example: NO_OS_PWM_POLARITY_HIGH NO_OS_PWM_POLARITY_LOW
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_init()

int32_t no_os_pwm_init ( struct no_os_pwm_desc ** desc,
const struct no_os_pwm_init_param * param )

Initialize the PWM peripheral.

Parameters
desc- The PWM descriptor.
param- The structure that contains the PWM parameters.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_remove()

int32_t no_os_pwm_remove ( struct no_os_pwm_desc * desc)

Free the resources allocated by no_os_pwm_init().

Parameters
desc- The PWM descriptor.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_set_duty_cycle()

int32_t no_os_pwm_set_duty_cycle ( struct no_os_pwm_desc * desc,
uint32_t duty_cycle_ns )

Set the PWM duty cycle.

Parameters
desc- The PWM descriptor.
duty_cycle_ns- Duty cycle in nanoseconds.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_set_period()

int32_t no_os_pwm_set_period ( struct no_os_pwm_desc * desc,
uint32_t period_ns )

Set the PWM period value.

Parameters
desc- The PWM descriptor.
period_ns- The period value in nanoseconds.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_set_phase()

int32_t no_os_pwm_set_phase ( struct no_os_pwm_desc * desc,
uint32_t phase_ns )

Set the PWM phase value.

Parameters
desc- The PWM descriptor.
phase_ns- Phase value in nanoseconds.
Returns
0 in case of success, -1 otherwise.

◆ no_os_pwm_set_polarity()

int32_t no_os_pwm_set_polarity ( struct no_os_pwm_desc * desc,
enum no_os_pwm_polarity polarity )

Set the PWM polarity.

Parameters
desc- The PWM descriptor.
polarity- Polarity value. Example: NO_OS_PWM_POLARITY_HIGH NO_OS_PWM_POLARITY_LOW
Returns
0 in case of success, -1 otherwise.