Skip to content

Commit 1bf7bac

Browse files
authored
Merge pull request #447 from chuckstanski/issue438_nano33ble_fixes
Issue #438: Fixes for Arduino Nano 33 BLE.
2 parents 70d02aa + 3647d93 commit 1bf7bac

File tree

2 files changed

+3
-80
lines changed

2 files changed

+3
-80
lines changed

Adafruit_NeoPixel.cpp

Lines changed: 3 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1828,69 +1828,9 @@ void Adafruit_NeoPixel::show(void) {
18281828

18291829
#elif defined(__arm__)
18301830

1831-
#if defined(TARGET_GIGA) || defined(TARGET_M4)
1832-
// Arduino GIGA -----------------------------------------------------------
1833-
uint8_t *p = pixels, *end = p + numBytes, pix;
1834-
while (p < end)
1835-
{
1836-
pix = *p++;
1837-
for (int i = 7; i >= 0; i--)
1838-
{
1839-
// gpio_write(&gpio->gpio, 1);
1840-
gpio->write(1);
1841-
1842-
// duty cycle determines bit value
1843-
// if (pix & 0x80)
1844-
if (bitRead(pix, i) == 0)
1845-
{
1846-
// one
1847-
// wait_ns(400); -> 192 cycles
1848-
#if defined(TARGET_GIGA)
1849-
for (int j = 0; j < 96; j++)
1850-
#else
1851-
for (int j = 0; j < 48; j++)
1852-
#endif
1853-
__NOP();
1854-
1855-
// gpio_write(&gpio->gpio, 0);
1856-
gpio->write(0);
1857-
1858-
// wait_ns(850) -> 408 cycles
1859-
#if defined(TARGET_GIGA)
1860-
for (int j = 0; j < 204; j++)
1861-
#else
1862-
for (int j = 0; j < 102; j++)
1863-
#endif
1864-
__NOP();
1865-
}
1866-
else
1867-
{
1868-
// zero
1869-
// wait_ns(800) -> 384 cycles
1870-
#if defined(TARGET_GIGA)
1871-
for (int j = 0; j < 192; j++)
1872-
#else
1873-
for (int j = 0; j < 96; j++)
1874-
#endif
1875-
__NOP();
1876-
1877-
gpio->write(0);
1878-
// gpio_write(&gpio->gpio, 0);
1879-
// wait_ns(450) -> 216 cycles
1880-
#if defined(TARGET_GIGA)
1881-
for (int j = 0; j < 108; j++)
1882-
#else
1883-
for (int j = 0; j < 54; j++)
1884-
#endif
1885-
__NOP();
1886-
}
1887-
1888-
// pix = pix << 1; // shift to next bit
1889-
}
1890-
}
18911831
// ARM MCUs -- Teensy 3.0, 3.1, LC, Arduino Due, RP2040 -------------------
18921832

1893-
#elif defined(ARDUINO_ARCH_RP2040)
1833+
#if defined(ARDUINO_ARCH_RP2040)
18941834
// Use PIO
18951835
rp2040Show(pixels, numBytes);
18961836

@@ -3143,9 +3083,9 @@ if(is800KHz) {
31433083
#define ARM_DWT_CTRL_CYCCNTENA (1 << 0) // Enable cycle count
31443084
#define ARM_DWT_CYCCNT (*(volatile uint32_t *)0xE0001004) // Cycle count register
31453085

3146-
#if defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_GIGA)
3086+
#if defined(ARDUINO_PORTENTA_H7_M7) || (defined(ARDUINO_ARCH_MBED_GIGA) && defined(TARGET_M7))
31473087
#define F_CPU 480000000
3148-
#elif defined(ARDUINO_PORTENTA_H7_M4)
3088+
#elif defined(ARDUINO_PORTENTA_H7_M4) || (defined(ARDUINO_ARCH_MBED_GIGA) && defined(TARGET_M4))
31493089
#define F_CPU 240000000
31503090
#else
31513091
#define F_CPU 48000000
@@ -3413,14 +3353,6 @@ void Adafruit_NeoPixel::setPin(int16_t p) {
34133353
}
34143354
#endif
34153355
#endif
3416-
#if defined(TARGET_GIGA) || defined(TARGET_M4)
3417-
gpio = digitalPinToGpio(pin);
3418-
if (gpio == NULL)
3419-
{
3420-
gpio = new mbed::DigitalInOut(digitalPinToPinName(pin), PIN_OUTPUT, PullNone, 0);
3421-
digitalPinToGpio(pin) = gpio;
3422-
}
3423-
#endif
34243356
}
34253357

34263358
/*!

Adafruit_NeoPixel.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@
4949
#include <Arduino.h>
5050
#endif
5151

52-
#if defined(TARGET_GIGA) || defined(TARGET_M4)
53-
#include "mbed.h"
54-
#include "pinDefinitions.h"
55-
#endif
56-
5752
#if defined(ARDUINO_ARCH_RP2040)
5853
#include <stdlib.h>
5954
#include "hardware/pio.h"
@@ -422,10 +417,6 @@ class Adafruit_NeoPixel {
422417
uint32_t gpioPin; ///< Output GPIO PIN
423418
#endif
424419

425-
#if defined(TARGET_GIGA) || defined(TARGET_M4)
426-
mbed::DigitalInOut *gpio;
427-
#endif
428-
429420
};
430421

431422
#endif // ADAFRUIT_NEOPIXEL_H

0 commit comments

Comments
 (0)