mirror of
https://github.com/stnolting/neorv32.git
synced 2025-04-24 22:27:21 -04:00
NEOLED: Change "variable style" by "pointer style"
This commit is contained in:
parent
d9d141359b
commit
bb0f00a4a0
4 changed files with 17 additions and 17 deletions
|
@ -102,7 +102,7 @@ int main() {
|
|||
// check NEOLED configuration
|
||||
neorv32_uart0_printf("Checking NEOLED configuration:\n"
|
||||
" Hardware FIFO size: %u entries\n"
|
||||
" Control register: 0x%x\n\n", neorv32_neoled_get_buffer_size(), NEORV32_NEOLED.CTRL);
|
||||
" Control register: 0x%x\n\n", neorv32_neoled_get_buffer_size(), NEORV32_NEOLED->CTRL);
|
||||
|
||||
|
||||
// clear all LEDs
|
||||
|
|
|
@ -1247,7 +1247,7 @@ typedef struct __attribute__((packed,aligned(4))) {
|
|||
**************************************************************************/
|
||||
/**@{*/
|
||||
/** NEOLED module prototype */
|
||||
typedef struct __attribute__((packed,aligned(4))) {
|
||||
typedef volatile struct __attribute__((packed,aligned(4))) {
|
||||
uint32_t CTRL; /**< offset 0: control register */
|
||||
uint32_t DATA; /**< offset 4: data register (#NEORV32_NEOLED_CTRL_enum) */
|
||||
} neorv32_neoled_t;
|
||||
|
@ -1256,7 +1256,7 @@ typedef struct __attribute__((packed,aligned(4))) {
|
|||
#define NEORV32_NEOLED_BASE (0xFFFFFFD8U)
|
||||
|
||||
/** NEOLED module hardware access (#neorv32_neoled_t) */
|
||||
#define NEORV32_NEOLED (*((volatile neorv32_neoled_t*) (NEORV32_NEOLED_BASE)))
|
||||
#define NEORV32_NEOLED ((neorv32_neoled_t*) (NEORV32_NEOLED_BASE))
|
||||
|
||||
/** NEOLED control register bits */
|
||||
enum NEORV32_NEOLED_CTRL_enum {
|
||||
|
|
|
@ -65,7 +65,7 @@ uint32_t neorv32_neoled_get_buffer_size(void);
|
|||
**************************************************************************/
|
||||
inline void __attribute__ ((always_inline)) neorv32_neoled_write_nonblocking(uint32_t data) {
|
||||
|
||||
NEORV32_NEOLED.DATA = data; // send new LED data
|
||||
NEORV32_NEOLED->DATA = data; // send new LED data
|
||||
}
|
||||
|
||||
#endif // neorv32_neoled_h
|
||||
|
|
|
@ -71,7 +71,7 @@ int neorv32_neoled_available(void) {
|
|||
**************************************************************************/
|
||||
void neorv32_neoled_setup(uint32_t prsc, uint32_t t_total, uint32_t t_high_zero, uint32_t t_high_one) {
|
||||
|
||||
NEORV32_NEOLED.CTRL = 0; // reset
|
||||
NEORV32_NEOLED->CTRL = 0; // reset
|
||||
|
||||
// module enable
|
||||
uint32_t ct_enable = 1 << NEOLED_CTRL_EN;
|
||||
|
@ -89,7 +89,7 @@ void neorv32_neoled_setup(uint32_t prsc, uint32_t t_total, uint32_t t_high_zero,
|
|||
uint32_t ct_t_one = (t_high_one & 0x1f) << NEOLED_CTRL_T_ONE_H_0;
|
||||
|
||||
// set new configuration
|
||||
NEORV32_NEOLED.CTRL = ct_enable | ct_prsc | ct_t_total | ct_t_zero | ct_t_one;
|
||||
NEORV32_NEOLED->CTRL = ct_enable | ct_prsc | ct_t_total | ct_t_zero | ct_t_one;
|
||||
}
|
||||
|
||||
|
||||
|
@ -161,10 +161,10 @@ void neorv32_neoled_setup_ws2812(void) {
|
|||
**************************************************************************/
|
||||
void neorv32_neoled_set_mode(uint32_t mode) {
|
||||
|
||||
uint32_t ctrl = NEORV32_NEOLED.CTRL;
|
||||
uint32_t ctrl = NEORV32_NEOLED->CTRL;
|
||||
ctrl &= ~(0b1 << NEOLED_CTRL_MODE); // clear current mode
|
||||
ctrl |= ((mode & 1) << NEOLED_CTRL_MODE); // set new mode
|
||||
NEORV32_NEOLED.CTRL = ctrl;
|
||||
NEORV32_NEOLED->CTRL = ctrl;
|
||||
}
|
||||
|
||||
|
||||
|
@ -174,7 +174,7 @@ void neorv32_neoled_set_mode(uint32_t mode) {
|
|||
void neorv32_neoled_strobe_blocking(void) {
|
||||
|
||||
while(1) { // wait for FIFO full flag to clear
|
||||
if ((NEORV32_NEOLED.CTRL & (1 << NEOLED_CTRL_TX_FULL)) == 0) {
|
||||
if ((NEORV32_NEOLED->CTRL & (1 << NEOLED_CTRL_TX_FULL)) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -189,11 +189,11 @@ void neorv32_neoled_strobe_blocking(void) {
|
|||
void neorv32_neoled_strobe_nonblocking(void) {
|
||||
|
||||
const uint32_t mask = 1 << NEOLED_CTRL_STROBE; // strobe bit
|
||||
uint32_t ctrl = NEORV32_NEOLED.CTRL;
|
||||
uint32_t ctrl = NEORV32_NEOLED->CTRL;
|
||||
|
||||
NEORV32_NEOLED.CTRL = ctrl | mask; // set strobe bit
|
||||
NEORV32_NEOLED.DATA = 0; // send any data to trigger strobe command
|
||||
NEORV32_NEOLED.CTRL = ctrl & (~mask); // clear strobe bit
|
||||
NEORV32_NEOLED->CTRL = ctrl | mask; // set strobe bit
|
||||
NEORV32_NEOLED->DATA = 0; // send any data to trigger strobe command
|
||||
NEORV32_NEOLED->CTRL = ctrl & (~mask); // clear strobe bit
|
||||
}
|
||||
|
||||
|
||||
|
@ -202,7 +202,7 @@ void neorv32_neoled_strobe_nonblocking(void) {
|
|||
**************************************************************************/
|
||||
void neorv32_neoled_enable(void) {
|
||||
|
||||
NEORV32_NEOLED.CTRL |= ((uint32_t)(1 << NEOLED_CTRL_EN));
|
||||
NEORV32_NEOLED->CTRL |= ((uint32_t)(1 << NEOLED_CTRL_EN));
|
||||
}
|
||||
|
||||
|
||||
|
@ -211,7 +211,7 @@ void neorv32_neoled_enable(void) {
|
|||
**************************************************************************/
|
||||
void neorv32_neoled_disable(void) {
|
||||
|
||||
NEORV32_NEOLED.CTRL &= ~((uint32_t)(1 << NEOLED_CTRL_EN));
|
||||
NEORV32_NEOLED->CTRL &= ~((uint32_t)(1 << NEOLED_CTRL_EN));
|
||||
}
|
||||
|
||||
|
||||
|
@ -225,7 +225,7 @@ void neorv32_neoled_disable(void) {
|
|||
void neorv32_neoled_write_blocking(uint32_t data) {
|
||||
|
||||
while(1) { // wait for FIFO full flag to clear
|
||||
if ((NEORV32_NEOLED.CTRL & (1 << NEOLED_CTRL_TX_FULL)) == 0) {
|
||||
if ((NEORV32_NEOLED->CTRL & (1 << NEOLED_CTRL_TX_FULL)) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -241,7 +241,7 @@ void neorv32_neoled_write_blocking(uint32_t data) {
|
|||
**************************************************************************/
|
||||
uint32_t neorv32_neoled_get_buffer_size(void) {
|
||||
|
||||
uint32_t tmp = NEORV32_NEOLED.CTRL;
|
||||
uint32_t tmp = NEORV32_NEOLED->CTRL;
|
||||
tmp = tmp >> NEOLED_CTRL_BUFS_0;
|
||||
tmp = tmp & 0xf; // isolate buffer size bits
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue