Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 583e030

Browse filesBrowse files
committed
Moved RGBLedWrite to new file esp32-hal-rgb-led and created pinMode in variatn.cpp
1 parent 50b6356 commit 583e030
Copy full SHA for 583e030

File tree

Expand file treeCollapse file tree

9 files changed

+114
-57
lines changed
Filter options
Expand file treeCollapse file tree

9 files changed

+114
-57
lines changed

‎CMakeLists.txt

Copy file name to clipboardExpand all lines: CMakeLists.txt
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ set(CORE_SRCS
3636
cores/esp32/esp32-hal-matrix.c
3737
cores/esp32/esp32-hal-misc.c
3838
cores/esp32/esp32-hal-psram.c
39+
cores/esp32/esp32-hal-rgb-led.c
3940
cores/esp32/esp32-hal-sigmadelta.c
4041
cores/esp32/esp32-hal-spi.c
4142
cores/esp32/esp32-hal-time.c

‎cores/esp32/esp32-hal-gpio.c

Copy file name to clipboardExpand all lines: cores/esp32/esp32-hal-gpio.c
-54Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,6 @@ static InterruptHandle_t __pinInterruptHandlers[SOC_GPIO_PIN_COUNT] = {0,};
9191

9292
extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
9393
{
94-
#ifdef BOARD_HAS_NEOPIXEL
95-
if (pin == LED_BUILTIN){
96-
__pinMode(LED_BUILTIN-SOC_GPIO_PIN_COUNT, mode);
97-
return;
98-
}
99-
#endif
100-
10194
if (!GPIO_IS_VALID_GPIO(pin)) {
10295
log_e("Invalid pin selected");
10396
return;
@@ -132,53 +125,6 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
132125
}
133126
}
134127

135-
#ifdef BOARD_HAS_NEOPIXEL
136-
void RGBLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val){
137-
rmt_data_t led_data[24];
138-
static rmt_obj_t* rmt_send = NULL;
139-
static bool initialized = false;
140-
141-
uint8_t _pin;
142-
if(pin == LED_BUILTIN){
143-
_pin = LED_BUILTIN-SOC_GPIO_PIN_COUNT;
144-
}else{
145-
_pin = pin;
146-
}
147-
148-
if(!initialized){
149-
if((rmt_send = rmtInit(_pin, RMT_TX_MODE, RMT_MEM_64)) == NULL){
150-
log_e("RGB LED driver initialization failed!");
151-
rmt_send = NULL;
152-
return;
153-
}
154-
rmtSetTick(rmt_send, 100);
155-
initialized = true;
156-
}
157-
158-
int color[] = {green_val, red_val, blue_val}; // Color coding is in order GREEN, RED, BLUE
159-
int i = 0;
160-
for(int col=0; col<3; col++ ){
161-
for(int bit=0; bit<8; bit++){
162-
if((color[col] & (1<<(7-bit)))){
163-
// HIGH bit
164-
led_data[i].level0 = 1; // T1H
165-
led_data[i].duration0 = 8; // 0.8us
166-
led_data[i].level1 = 0; // T1L
167-
led_data[i].duration1 = 4; // 0.4us
168-
}else{
169-
// LOW bit
170-
led_data[i].level0 = 1; // T0H
171-
led_data[i].duration0 = 4; // 0.4us
172-
led_data[i].level1 = 0; // T0L
173-
led_data[i].duration1 = 8; // 0.8us
174-
}
175-
i++;
176-
}
177-
}
178-
rmtWrite(rmt_send, led_data, 24);
179-
}
180-
#endif
181-
182128
extern void ARDUINO_ISR_ATTR __digitalWrite(uint8_t pin, uint8_t val)
183129
{
184130
#ifdef BOARD_HAS_NEOPIXEL

‎cores/esp32/esp32-hal-gpio.h

Copy file name to clipboardExpand all lines: cores/esp32/esp32-hal-gpio.h
-3Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,6 @@ extern "C" {
7272
#define digitalPinToDacChannel(pin) (((pin) == DAC_CHANNEL_1_GPIO_NUM)?0:((pin) == DAC_CHANNEL_2_GPIO_NUM)?1:-1)
7373

7474
void pinMode(uint8_t pin, uint8_t mode);
75-
#ifdef BOARD_HAS_NEOPIXEL
76-
void RGBLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val);
77-
#endif
7875
void digitalWrite(uint8_t pin, uint8_t val);
7976
int digitalRead(uint8_t pin);
8077

‎cores/esp32/esp32-hal-rgb-led.c

Copy file name to clipboard
+51Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include "esp32-hal-rgb-led.h"
2+
3+
#ifdef BOARD_HAS_NEOPIXEL
4+
5+
void RGBLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val){
6+
log_d("RGB: %d %d %d", red_val, green_val, blue_val);
7+
rmt_data_t led_data[24];
8+
static rmt_obj_t* rmt_send = NULL;
9+
static bool initialized = false;
10+
11+
uint8_t _pin;
12+
if(pin == LED_BUILTIN){
13+
_pin = LED_BUILTIN-SOC_GPIO_PIN_COUNT;
14+
}else{
15+
_pin = pin;
16+
}
17+
18+
if(!initialized){
19+
if((rmt_send = rmtInit(_pin, RMT_TX_MODE, RMT_MEM_64)) == NULL){
20+
log_e("RGB LED driver initialization failed!");
21+
rmt_send = NULL;
22+
return;
23+
}
24+
rmtSetTick(rmt_send, 100);
25+
initialized = true;
26+
}
27+
28+
int color[] = {green_val, red_val, blue_val}; // Color coding is in order GREEN, RED, BLUE
29+
int i = 0;
30+
for(int col=0; col<3; col++ ){
31+
for(int bit=0; bit<8; bit++){
32+
if((color[col] & (1<<(7-bit)))){
33+
// HIGH bit
34+
led_data[i].level0 = 1; // T1H
35+
led_data[i].duration0 = 8; // 0.8us
36+
led_data[i].level1 = 0; // T1L
37+
led_data[i].duration1 = 4; // 0.4us
38+
}else{
39+
// LOW bit
40+
led_data[i].level0 = 1; // T0H
41+
led_data[i].duration0 = 4; // 0.4us
42+
led_data[i].level1 = 0; // T0L
43+
led_data[i].duration1 = 8; // 0.8us
44+
}
45+
i++;
46+
}
47+
}
48+
rmtWrite(rmt_send, led_data, 24);
49+
}
50+
51+
#endif

‎cores/esp32/esp32-hal-rgb-led.h

Copy file name to clipboard
+22Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#ifndef MAIN_ESP32_HAL_RGB_LED_H_
2+
#define MAIN_ESP32_HAL_RGB_LED_H_
3+
4+
#ifdef __cplusplus
5+
extern "C" {
6+
#endif
7+
8+
#include "esp32-hal.h"
9+
/*
10+
#include "soc/soc_caps.h"
11+
#include "pins_arduino.h"
12+
*/
13+
14+
//#ifdef BOARD_HAS_NEOPIXEL
15+
void RGBLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val);
16+
//#endif
17+
18+
#ifdef __cplusplus
19+
}
20+
#endif
21+
22+
#endif /* MAIN_ESP32_HAL_RGB_LED_H_ */

‎cores/esp32/esp32-hal.h

Copy file name to clipboardExpand all lines: cores/esp32/esp32-hal.h
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ void yield(void);
8888
#include "esp32-hal-timer.h"
8989
#include "esp32-hal-bt.h"
9090
#include "esp32-hal-psram.h"
91+
#include "esp32-hal-rgb-led.h"
9192
#include "esp32-hal-cpu.h"
9293

9394
void analogWrite(uint8_t pin, int value);

‎variants/esp32c3/variant.cpp

Copy file name to clipboard
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include "esp32-hal-rgb-led.h"
2+
3+
extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
4+
{
5+
log_d("foo");
6+
#ifdef BOARD_HAS_NEOPIXEL
7+
if (pin == LED_BUILTIN){
8+
__pinMode(LED_BUILTIN-SOC_GPIO_PIN_COUNT, mode);
9+
return;
10+
}
11+
#endif
12+
__pinMode(pin, mode);
13+
}

‎variants/esp32s2/variant.cpp

Copy file name to clipboard
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include "esp32-hal-rgb-led.h"
2+
3+
extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
4+
{
5+
log_d("foo");
6+
#ifdef BOARD_HAS_NEOPIXEL
7+
if (pin == LED_BUILTIN){
8+
__pinMode(LED_BUILTIN-SOC_GPIO_PIN_COUNT, mode);
9+
return;
10+
}
11+
#endif
12+
__pinMode(pin, mode);
13+
}

‎variants/esp32s3/variant.cpp

Copy file name to clipboard
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include "esp32-hal-rgb-led.h"
2+
3+
extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
4+
{
5+
log_d("foo");
6+
#ifdef BOARD_HAS_NEOPIXEL
7+
if (pin == LED_BUILTIN){
8+
__pinMode(LED_BUILTIN-SOC_GPIO_PIN_COUNT, mode);
9+
return;
10+
}
11+
#endif
12+
__pinMode(pin, mode);
13+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.