This commit is contained in:
Michael Miller
2024-09-21 09:19:32 -07:00
parent be746da105
commit b7678e94ef
27 changed files with 129 additions and 19 deletions

View File

@@ -50,15 +50,15 @@ License along with NeoPixel. If not, see
//
#if defined(ARDUINO_ARCH_ESP8266)
#include "methods/NeoEsp8266DmaMethod.h"
#include "methods/NeoEsp8266I2sDmx512Method.h"
#include "methods/NeoEsp8266UartMethod.h"
#include "methods/NeoEspBitBangMethod.h"
#include "methods/ESP/ESP8266/NeoEsp8266DmaMethod.h"
#include "methods/ESP/ESP8266/NeoEsp8266I2sDmx512Method.h"
#include "methods/ESP/ESP8266/NeoEsp8266UartMethod.h"
#include "methods/ESP/NeoEspBitBangMethod.h"
#elif defined(ARDUINO_ARCH_ESP32)
#if !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2)
#include "methods/NeoEsp32I2sMethod.h"
#include "methods/ESP/ESP32/Core_2_x/NeoEsp32I2sMethod.h"
#if ESP_IDF_VERSION_MAJOR < 5
#include "methods/ESP/ESP32/Core_2_x/NeoEsp32RmtMethod.h"
#else
@@ -68,29 +68,28 @@ License along with NeoPixel. If not, see
#include "methods/ESP/ESP32/NeoEsp32SpiMethod.h" // ESP32C2
#endif //CONFIG_IDF_TARGET_ESP32C2
#endif // ESP_IDF_VERSION_MAJOR
#include "methods/DotStarEsp32DmaSpiMethod.h"
#include "methods/NeoEsp32I2sXMethod.h"
#include "methods/NeoEsp32LcdXMethod.h"
#include "methods/ESP/ESP32/DotStarEsp32DmaSpiMethod.h"
#include "methods/ESP/ESP32/Core_2_x/NeoEsp32I2sXMethod.h"
#include "methods/ESP/ESP32/NeoEsp32LcdXMethod.h"
#endif
#include "methods/NeoEspBitBangMethod.h"
#include "methods/ESP/NeoEspBitBangMethod.h"
#elif defined(ARDUINO_ARCH_NRF52840) // must be before __arm__
#include "methods/NeoNrf52xMethod.h"
#include "methods/ARM/NeoNrf52xMethod.h"
#elif defined(ARDUINO_ARCH_RP2040) // must be before __arm__
#include "methods/Rp2040/NeoRp2040x4Method.h"
#include "methods/RP2040/NeoRp2040x4Method.h"
#elif defined(__arm__) // must be before ARDUINO_ARCH_AVR due to Teensy incorrectly having it set
#include "methods/NeoArmMethod.h"
#include "methods/ARM/NeoArmMethod.h"
#elif defined(ARDUINO_ARCH_AVR) || defined(ARDUINO_ARCH_MEGAAVR)
#include "methods/NeoAvrMethod.h"
#include "methods/AVR/NeoAvrMethod.h"
#else
#error "Platform Currently Not Supported, please add an Issue at Github/Makuna/NeoPixelBus"

View File

@@ -162,7 +162,7 @@ typedef DotStarMethodBase<TwoWireSpiImple<SpiSpeedHz>> DotStarEsp32VspiHzMethod;
typedef DotStarSpi10MhzMethod DotStarEsp32VspiMethod;
#include "TwoWireHspiImple.h"
#include "ESP/ESP32/TwoWireHspiImple.h"
typedef DotStarMethodBase<TwoWireHspiImple<SpiSpeed40Mhz>> DotStarEsp32Hspi40MhzMethod;
typedef DotStarMethodBase<TwoWireHspiImple<SpiSpeed20Mhz>> DotStarEsp32Hspi20MhzMethod;
typedef DotStarMethodBase<TwoWireHspiImple<SpiSpeed10Mhz>> DotStarEsp32Hspi10MhzMethod;

View File

@@ -0,0 +1,111 @@
/*-------------------------------------------------------------------------
NeoPixel library helper functions for Esp32.
Written by Michael C. Miller.
I invest time and resources providing this open source code,
please support me by dontating (see https://github.com/Makuna/NeoPixelBus)
-------------------------------------------------------------------------
This file is part of the Makuna/NeoPixelBus library.
NeoPixelBus is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.
NeoPixelBus is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with NeoPixel. If not, see
<http://www.gnu.org/licenses/>.
-------------------------------------------------------------------------*/
#pragma once
class NeoEsp32RmtChannel0
{
public:
NeoEsp32RmtChannel0() {};
rmt_channel_handle_t RmtChannelNumber = NULL;
};
class NeoEsp32RmtChannel1
{
public:
NeoEsp32RmtChannel1() {};
rmt_channel_handle_t RmtChannelNumber = NULL;
};
#if !defined(CONFIG_IDF_TARGET_ESP32C6) // C6 only 2 RMT channels ??
class NeoEsp32RmtChannel2
{
public:
NeoEsp32RmtChannel2() {};
rmt_channel_handle_t RmtChannelNumber = NULL;
};
class NeoEsp32RmtChannel3
{
public:
NeoEsp32RmtChannel3() {};
protected:
rmt_channel_handle_t RmtChannelNumber = NULL;
};
#endif // !defined(CONFIG_IDF_TARGET_ESP32C6)
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
class NeoEsp32RmtChannel4
{
public:
NeoEsp32RmtChannel4() {};
rmt_channel_handle_t RmtChannelNumber = NULL;
};
class NeoEsp32RmtChannel5
{
public:
NeoEsp32RmtChannel5() {};
rmt_channel_handle_t RmtChannelNumber = NULL;
};
class NeoEsp32RmtChannel6
{
public:
NeoEsp32RmtChannel6() {};
rmt_channel_handle_t RmtChannelNumber = NULL;
};
class NeoEsp32RmtChannel7
{
public:
NeoEsp32RmtChannel7() {};
rmt_channel_handle_t RmtChannelNumber = NULL;
};
#endif
// dynamic channel support
class NeoEsp32RmtChannelN
{
public:
NeoEsp32RmtChannelN(NeoBusChannel channel) :
RmtChannelNumber(RmtChannelNumber)
{
RmtChannelNumber = NULL;
};
NeoEsp32RmtChannelN() = delete; // no default constructor
rmt_channel_handle_t RmtChannelNumber = NULL;
};

View File

@@ -152,7 +152,7 @@ typedef Hd108MethodBase<TwoWireSpiImple<SpiSpeedHz>> Hd108Esp32VspiHzMethod;
typedef Hd108Spi10MhzMethod Hd108Esp32VspiMethod;
#include "TwoWireHspiImple.h"
#include "ESP/ESP32/TwoWireHspiImple.h"
typedef Hd108MethodBase<TwoWireHspiImple<SpiSpeed40Mhz>> Hd108Esp32Hspi40MhzMethod;
typedef Hd108MethodBase<TwoWireHspiImple<SpiSpeed20Mhz>> Hd108Esp32Hspi20MhzMethod;
typedef Hd108MethodBase<TwoWireHspiImple<SpiSpeed10Mhz>> Hd108Esp32Hspi10MhzMethod;

View File

@@ -192,7 +192,7 @@ typedef Mbi6033MethodBase<TwoWireSpiImple<SpiSpeedHz>> Mbi6033Esp32VspiHzMethod;
typedef Mbi6033Spi10MhzMethod Mbi6033Esp32VspiMethod;
#include "TwoWireHspiImple.h"
#include "ESP/ESP32/TwoWireHspiImple.h"
typedef Mbi6033MethodBase<TwoWireHspiImple<SpiSpeed40Mhz>> Mbi6033Esp32Hspi40MhzMethod;
typedef Mbi6033MethodBase<TwoWireHspiImple<SpiSpeed20Mhz>> Mbi6033Esp32Hspi20MhzMethod;
typedef Mbi6033MethodBase<TwoWireHspiImple<SpiSpeed10Mhz>> Mbi6033Esp32Hspi10MhzMethod;

View File

@@ -209,7 +209,7 @@ typedef Tlc59711MethodBase<TwoWireSpiImple<SpiSpeedHz>> Tlc59711Esp32VspiHzMetho
typedef Tlc59711MethodBase<TwoWireSpiImple<SpiSpeed3600Khz>> Tlc59711Esp32VspiMethod;
#include "TwoWireHspiImple.h"
#include "ESP/ESP32/TwoWireHspiImple.h"
typedef Tlc59711MethodBase<TwoWireHspiImple<SpiSpeed40Mhz>> Tlc59711Esp32Hspi40MhzMethod;
typedef Tlc59711MethodBase<TwoWireHspiImple<SpiSpeed20Mhz>> Tlc59711Esp32Hspi20MhzMethod;
typedef Tlc59711MethodBase<TwoWireHspiImple<SpiSpeed10Mhz>> Tlc59711Esp32Hspi10MhzMethod;