no-OS
Loading...
Searching...
No Matches
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.
 
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

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.

SPDX-License-Identifier: BSD-3-Clause

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.