initial commit
This commit is contained in:
64
libraries/FastLED/src/platforms.cpp
Normal file
64
libraries/FastLED/src/platforms.cpp
Normal file
@@ -0,0 +1,64 @@
|
||||
/// @file platforms.cpp
|
||||
/// Platform-specific functions and variables
|
||||
|
||||
/// Disables pragma messages and warnings
|
||||
#define FASTLED_INTERNAL
|
||||
#include "fl/compiler_control.h"
|
||||
|
||||
// Removed duplicate weak definition of timer_millis for ATtiny1604.
|
||||
// The variable is already defined in avr_millis_timer_null_counter.hpp when needed,
|
||||
// so redefining it here caused multiple-definition linkage errors.
|
||||
|
||||
// Provide a single consolidated weak timer_millis symbol for AVR tiny/x-y parts
|
||||
// whose cores do not export it, satisfying MS_COUNTER binding in led_sysdefs_avr.h.
|
||||
// This complements avr_millis_timer_null_counter.hpp when that TU is not built.
|
||||
#if defined(__AVR__)
|
||||
# if defined(__AVR_ATtiny1604__) || defined(ARDUINO_attinyxy6) || defined(__AVR_ATtinyxy6__) || defined(__AVR_ATtiny1616__)
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
FL_LINK_WEAK volatile unsigned long timer_millis = 0;
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Interrupt handlers cannot be defined in the header.
|
||||
// They must be defined as C functions, or they won't
|
||||
// be found (due to name mangling), and thus won't
|
||||
// override any default weak definition.
|
||||
#if defined(NRF52_SERIES)
|
||||
|
||||
#include "platforms/arm/is_arm.h"
|
||||
#include "platforms/arm/nrf52/led_sysdefs_arm_nrf52.h"
|
||||
#include "platforms/arm/nrf52/arbiter_nrf52.h"
|
||||
|
||||
uint32_t isrCount;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
// NOTE: Update platforms.cpp in root of FastLED library if this changes
|
||||
#if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE0)
|
||||
void PWM0_IRQHandler(void) { ++isrCount; PWM_Arbiter<0>::isr_handler(); }
|
||||
#endif
|
||||
#if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE1)
|
||||
void PWM1_IRQHandler(void) { ++isrCount; PWM_Arbiter<1>::isr_handler(); }
|
||||
#endif
|
||||
#if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE2)
|
||||
void PWM2_IRQHandler(void) { ++isrCount; PWM_Arbiter<2>::isr_handler(); }
|
||||
#endif
|
||||
#if defined(FASTLED_NRF52_ENABLE_PWM_INSTANCE3)
|
||||
void PWM3_IRQHandler(void) { ++isrCount; PWM_Arbiter<3>::isr_handler(); }
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // defined(NRF52_SERIES)
|
||||
|
||||
|
||||
|
||||
// FASTLED_NAMESPACE_BEGIN
|
||||
// FASTLED_NAMESPACE_END
|
||||
Reference in New Issue
Block a user