ws281x_params.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019 Marian Buschsieweke
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
21 #include "board.h"
22 #include "saul_reg.h"
23 
24 #include "ws281x.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
34 #ifndef WS281X_PARAM_PIN
35 #define WS281X_PARAM_PIN (GPIO_PIN(0, 0))
36 #endif
37 #ifndef WS281X_PARAM_NUMOF
38 #define WS281X_PARAM_NUMOF (8U)
39 #endif
40 #ifndef WS281X_PARAM_BUF
45 #define WS281X_PARAM_BUF (ws281x_buf)
46 #endif
47 
48 #ifndef WS281X_PARAMS
52 #define WS281X_PARAMS { \
53  .pin = WS281X_PARAM_PIN, \
54  .numof = WS281X_PARAM_NUMOF, \
55  .buf = WS281X_PARAM_BUF, \
56  }
57 #endif
64 {
66 };
67 
87 #if !defined(WS281X_TIMER_DEV) || defined(DOXYGEN)
88 #define WS281X_TIMER_DEV TIMER_DEV(2)
89 #endif
90 
96 #ifndef WS281X_TIMER_MAX_VALUE
97 #define WS281X_TIMER_MAX_VALUE TIMER_2_MAX_VALUE
98 #endif
99 
105 #ifndef WS281X_TIMER_FREQ
106 #define WS281X_TIMER_FREQ 16000000
107 #endif
108 
112 #ifndef WS281X_SAUL_INFO
113 #define WS281X_SAUL_INFO { .name = "WS281X RGB LED" }
114 #endif
115 
120 {
122 };
123 
124 #ifdef __cplusplus
125 }
126 #endif
127 
#define WS281X_BYTES_PER_DEVICE
The number of bytes to allocate in the data buffer per LED.
Definition: ws281x.h:103
SAUL registry interface definition.
Additional data to collect for each entry.
Definition: saul_reg.h:48
Struct to hold initialization parameters for a WS281x RGB LED.
Definition: ws281x.h:108
WS2812/SK6812 RGB LED Driver.
#define WS281X_SAUL_INFO
SAUL info.
static const ws281x_params_t ws281x_params[]
Initialization parameters for WS281x devices.
Definition: ws281x_params.h:63
static const saul_reg_info_t ws281x_saul_info[]
Additional meta information to keep in the SAUL registry.
#define WS281X_PARAM_NUMOF
Number of LEDs chained.
Definition: ws281x_params.h:38
uint8_t ws281x_buf[WS281X_PARAM_NUMOF *WS281X_BYTES_PER_DEVICE]
Data buffer holding the LED states.
#define WS281X_PARAMS
WS281x initialization parameters.
Definition: ws281x_params.h:52