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 uint32_t MODE;
30 const uint32_t reserved[28];
31 union {
32 uint32_t TOPCMP;
33 struct {
34 uint16_t CMP;
35 uint16_t TOP;
36 };
37 } CHANNEL[32];
39
41#define NEORV32_PWM ((neorv32_pwm_t*) (NEORV32_PWM_BASE))
45/**********************************************************************/
49int neorv32_pwm_available(void);
51void neorv32_pwm_set_clock(int prsc);
52void neorv32_pwm_ch_enable_mask(uint32_t mask);
53void neorv32_pwm_ch_disable_mask(uint32_t mask);
56void neorv32_pwm_ch_setup(int ch, int top, int pol, int mode);
57void neorv32_pwm_ch_set_duty(int ch, int duty);
60#endif // NEORV32_PWM_H
void neorv32_pwm_ch_enable_mask(uint32_t mask)
Definition neorv32_pwm.c:67
void neorv32_pwm_ch_disable_single(int ch)
Definition neorv32_pwm.c:100
int neorv32_pmw_get_num_channels(void)
Definition neorv32_pwm.c:33
void neorv32_pwm_set_clock(int prsc)
Definition neorv32_pwm.c:56
void neorv32_pwm_ch_enable_single(int ch)
Definition neorv32_pwm.c:89
void neorv32_pwm_ch_set_duty(int ch, int duty)
Definition neorv32_pwm.c:141
void neorv32_pwm_ch_disable_mask(uint32_t mask)
Definition neorv32_pwm.c:78
void neorv32_pwm_ch_setup(int ch, int top, int pol, int mode)
Definition neorv32_pwm.c:114
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:35
uint32_t CLKPRSC
Definition neorv32_pwm.h:28
uint32_t TOPCMP
Definition neorv32_pwm.h:32
uint16_t CMP
Definition neorv32_pwm.h:34
uint32_t ENABLE
Definition neorv32_pwm.h:26
uint32_t MODE
Definition neorv32_pwm.h:29