NEORV32 API Reference
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_pwm.h
Go to the documentation of this file.
1// ================================================================================ //
2// The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 //
3// Copyright (c) NEORV32 contributors. //
4// Copyright (c) 2020 - 2025 Stephan Nolting. All rights reserved. //
5// Licensed under the BSD-3-Clause license, see LICENSE for details. //
6// SPDX-License-Identifier: BSD-3-Clause //
7// ================================================================================ //
8
14#ifndef NEORV32_PWM_H
15#define NEORV32_PWM_H
16
17#include <stdint.h>
18
19
20/**********************************************************************/
25typedef volatile struct __attribute__((packed,aligned(4))) {
26 uint32_t ENABLE;
27 uint32_t POLARITY;
28 uint32_t CLKPRSC;
29 const uint32_t reserved[13];
30 union {
31 uint32_t TOPCMP;
32 struct {
33 uint16_t CMP;
34 uint16_t TOP;
35 };
36 } CHANNEL[16];
38
40#define NEORV32_PWM ((neorv32_pwm_t*) (NEORV32_PWM_BASE))
44/**********************************************************************/
48int neorv32_pwm_available(void);
50void neorv32_pwm_set_clock(int prsc);
51void neorv32_pwm_ch_enable_mask(uint32_t mask);
52void neorv32_pwm_ch_disable_mask(uint32_t mask);
55void neorv32_pwm_ch_setup(int ch, int top, int pol);
56void neorv32_pwm_ch_set_duty(int ch, int duty);
59#endif // NEORV32_PWM_H
void neorv32_pwm_ch_enable_mask(uint32_t mask)
Definition neorv32_pwm.c:65
void neorv32_pwm_ch_disable_single(int ch)
Definition neorv32_pwm.c:98
int neorv32_pmw_get_num_channels(void)
Definition neorv32_pwm.c:34
void neorv32_pwm_set_clock(int prsc)
Definition neorv32_pwm.c:54
void neorv32_pwm_ch_enable_single(int ch)
Definition neorv32_pwm.c:87
void neorv32_pwm_ch_set_duty(int ch, int duty)
Definition neorv32_pwm.c:132
void neorv32_pwm_ch_setup(int ch, int top, int pol)
Definition neorv32_pwm.c:111
void neorv32_pwm_ch_disable_mask(uint32_t mask)
Definition neorv32_pwm.c:76
int neorv32_pwm_available(void)
Definition neorv32_pwm.c:22
Definition neorv32_pwm.h:25
uint32_t POLARITY
Definition neorv32_pwm.h:27
uint16_t TOP
Definition neorv32_pwm.h:34
uint32_t CLKPRSC
Definition neorv32_pwm.h:28
uint32_t TOPCMP
Definition neorv32_pwm.h:31
uint16_t CMP
Definition neorv32_pwm.h:33
uint32_t ENABLE
Definition neorv32_pwm.h:26