summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/arduino-stub.cpp94
-rw-r--r--usb-fastled/Makefile1
-rw-r--r--usb-fastled/usb-fastled.cpp4
3 files changed, 4 insertions, 95 deletions
diff --git a/lib/arduino-stub.cpp b/lib/arduino-stub.cpp
index 7a62882..237074c 100644
--- a/lib/arduino-stub.cpp
+++ b/lib/arduino-stub.cpp
@@ -265,101 +265,9 @@ void init()
#error Timer 0 overflow interrupt not set correctly
#endif
- // timers 1 and 2 are used for phase-correct hardware pwm
- // this is better for motors as it ensures an even waveform
- // note, however, that fast pwm mode can achieve a frequency of up
- // 8 MHz (with a 16 MHz clock) at 50% duty cycle
-
-#if defined(TCCR1B) && defined(CS11) && defined(CS10)
- TCCR1B = 0;
-
- // set timer 1 prescale factor to 64
- sbi(TCCR1B, CS11);
-#if F_CPU >= 8000000L
- sbi(TCCR1B, CS10);
-#endif
-#elif defined(TCCR1) && defined(CS11) && defined(CS10)
- sbi(TCCR1, CS11);
-#if F_CPU >= 8000000L
- sbi(TCCR1, CS10);
-#endif
-#endif
- // put timer 1 in 8-bit phase correct pwm mode
-#if defined(TCCR1A) && defined(WGM10)
- sbi(TCCR1A, WGM10);
-#elif defined(TCCR1)
- #warning this needs to be finished
-#endif
-
- // set timer 2 prescale factor to 64
-#if defined(TCCR2) && defined(CS22)
- sbi(TCCR2, CS22);
-#elif defined(TCCR2B) && defined(CS22)
- sbi(TCCR2B, CS22);
-#else
- #warning Timer 2 not finished (may not be present on this CPU)
-#endif
-
- // configure timer 2 for phase correct pwm (8-bit)
-#if defined(TCCR2) && defined(WGM20)
- sbi(TCCR2, WGM20);
-#elif defined(TCCR2A) && defined(WGM20)
- sbi(TCCR2A, WGM20);
-#else
- #warning Timer 2 not finished (may not be present on this CPU)
-#endif
-
-#if defined(TCCR3B) && defined(CS31) && defined(WGM30)
- sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64
- sbi(TCCR3B, CS30);
- sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode
-#endif
-
-#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */
- sbi(TCCR4B, CS42); // set timer4 prescale factor to 64
- sbi(TCCR4B, CS41);
- sbi(TCCR4B, CS40);
- sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode
- sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A
- sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D
-#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */
-#if defined(TCCR4B) && defined(CS41) && defined(WGM40)
- sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64
- sbi(TCCR4B, CS40);
- sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode
-#endif
-#endif /* end timer4 block for ATMEGA1280/2560 and similar */
-
-#if defined(TCCR5B) && defined(CS51) && defined(WGM50)
- sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64
- sbi(TCCR5B, CS50);
- sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode
-#endif
-
-#if defined(ADCSRA)
- // set a2d prescale factor to 128
- // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range.
- // XXX: this will not work properly for other clock speeds, and
- // this code should use F_CPU to determine the prescale factor.
- sbi(ADCSRA, ADPS2);
- sbi(ADCSRA, ADPS1);
- sbi(ADCSRA, ADPS0);
-
- // enable a2d conversions
- sbi(ADCSRA, ADEN);
-#endif
-
- // the bootloader connects pins 0 and 1 to the USART; disconnect them
- // here so they can be used as normal digital i/o; they will be
- // reconnected in Serial.begin()
-#if defined(UCSRB)
- UCSRB = 0;
-#elif defined(UCSR0B)
- UCSR0B = 0;
-#endif
}
-}
+} // extern "C"
void arduino_init(void)
{
diff --git a/usb-fastled/Makefile b/usb-fastled/Makefile
index 03d2c7e..1905b35 100644
--- a/usb-fastled/Makefile
+++ b/usb-fastled/Makefile
@@ -31,6 +31,7 @@ RESET_FUNC := $(SPREADAVR_PATH)/tools/reset_lufa_cdc
RESET_PARAM := '!'
FASTLED_PATH := $(SPREADAVR_PATH)/contrib/FastLED
+FASTLED_OPTS := -DCORE_TEENSY
LUFA_PATH := $(SPREADAVR_PATH)/contrib/lufa-LUFA-140928
LUFA_OPTS = -D USB_DEVICE_ONLY
diff --git a/usb-fastled/usb-fastled.cpp b/usb-fastled/usb-fastled.cpp
index 429e8f5..06e1cfc 100644
--- a/usb-fastled/usb-fastled.cpp
+++ b/usb-fastled/usb-fastled.cpp
@@ -37,12 +37,12 @@
// How many leds in your strip?
-#define NUM_LEDS 30
+#define NUM_LEDS 8
// For led chips like Neopixels, which have a data line, ground, and power, you just
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
-#define DATA_PIN 3 // PD0 @ Atmega32U4
+#define DATA_PIN 23 // PD5 @ Atmega32U4
#define CLOCK_PIN 2 // PD1 @ Atmega32U4
// Define the array of leds