no-OS
Functions
no_os_pwm.c File Reference

Implementation of the PWM Interface. More...

#include <inttypes.h>
#include "no_os_pwm.h"
#include <stdlib.h>
#include "no_os_error.h"
#include "no_os_mutex.h"
Include dependency graph for no_os_pwm.c:

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. More...
 
int32_t no_os_pwm_remove (struct no_os_pwm_desc *desc)
 Free the resources allocated by no_os_pwm_init(). More...
 
int32_t no_os_pwm_enable (struct no_os_pwm_desc *desc)
 Enable PWM signal generation. More...
 
int32_t no_os_pwm_disable (struct no_os_pwm_desc *desc)
 Disable PWM signal generation. More...
 
int32_t no_os_pwm_set_period (struct no_os_pwm_desc *desc, uint32_t period_ns)
 Set the PWM period value. More...
 
int32_t no_os_pwm_get_period (struct no_os_pwm_desc *desc, uint32_t *period_ns)
 Get the PWM period value. More...
 
int32_t no_os_pwm_set_duty_cycle (struct no_os_pwm_desc *desc, uint32_t duty_cycle_ns)
 Set the PWM duty cycle. More...
 
int32_t no_os_pwm_get_duty_cycle (struct no_os_pwm_desc *desc, uint32_t *duty_cycle_ns)
 Get the PWM duty cycle. More...
 
int32_t no_os_pwm_set_phase (struct no_os_pwm_desc *desc, uint32_t phase_ns)
 Set the PWM phase value. More...
 
int32_t no_os_pwm_get_phase (struct no_os_pwm_desc *desc, uint32_t *phase_ns)
 Get the PWM phase value. More...
 
int32_t no_os_pwm_set_polarity (struct no_os_pwm_desc *desc, enum no_os_pwm_polarity polarity)
 Set the PWM polarity. More...
 
int32_t no_os_pwm_get_polarity (struct no_os_pwm_desc *desc, enum no_os_pwm_polarity *polarity)
 Get the PWM polarity. More...
 

Detailed Description

Implementation of the PWM Interface.

Author
Pratyush Mallick (praty.nosp@m.ush..nosp@m.malli.nosp@m.ck@a.nosp@m.nalog.nosp@m..com)

Copyright 2023(c) Analog Devices, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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.
Here is the caller graph for this function:

◆ 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.
Here is the caller graph for this function:

◆ 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.
Here is the caller graph for this function:

◆ 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.
Here is the caller graph for this function:

◆ 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.
Here is the caller graph for this function:

◆ 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.
Here is the caller graph for this function:

◆ 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.