Forked PololuLedStrip and modified it to work with the KL25Z. Renamed it to Adafruit_NeoPixel.

Dependents:   idd_hw3 idd_fa15_hw3_lauren_bill_tomas idd_fa15_hw3_lauren_bill_tomas Raiden ... more

Fork of PololuLedStrip by David Grayson

Committer:
DavidEGrayson
Date:
Wed Feb 27 01:43:44 2013 +0000
Revision:
1:102307d9b701
Child:
4:d3b60bd43811
Initial commit.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DavidEGrayson 1:102307d9b701 1 #include "PololuLedStrip.h"
DavidEGrayson 1:102307d9b701 2
DavidEGrayson 1:102307d9b701 3 bool PololuLedStrip::interruptFriendly = false;
DavidEGrayson 1:102307d9b701 4
DavidEGrayson 1:102307d9b701 5 PololuLedStrip::PololuLedStrip(PinName pinName)
DavidEGrayson 1:102307d9b701 6 {
DavidEGrayson 1:102307d9b701 7 gpio_init(&gpio, pinName, PIN_OUTPUT);
DavidEGrayson 1:102307d9b701 8 }
DavidEGrayson 1:102307d9b701 9
DavidEGrayson 1:102307d9b701 10 void PololuLedStrip::write(rgb_color * colors, unsigned int count)
DavidEGrayson 1:102307d9b701 11 {
DavidEGrayson 1:102307d9b701 12 __disable_irq(); // Disable interrupts temporarily because we don't want our pulse timing to be messed up.
DavidEGrayson 1:102307d9b701 13
DavidEGrayson 1:102307d9b701 14 while(count--)
DavidEGrayson 1:102307d9b701 15 {
DavidEGrayson 1:102307d9b701 16 led_strip_write_color(colors++, gpio.reg_set, gpio.reg_clr, gpio.mask);
DavidEGrayson 1:102307d9b701 17
DavidEGrayson 1:102307d9b701 18 if (interruptFriendly)
DavidEGrayson 1:102307d9b701 19 {
DavidEGrayson 1:102307d9b701 20 __enable_irq();
DavidEGrayson 1:102307d9b701 21 __nop();
DavidEGrayson 1:102307d9b701 22 __nop();
DavidEGrayson 1:102307d9b701 23 __nop();
DavidEGrayson 1:102307d9b701 24 __disable_irq();
DavidEGrayson 1:102307d9b701 25 }
DavidEGrayson 1:102307d9b701 26 }
DavidEGrayson 1:102307d9b701 27
DavidEGrayson 1:102307d9b701 28 __enable_irq(); // Re-enable interrupts now that we are done.
DavidEGrayson 1:102307d9b701 29 wait_us(24); // Hold the line low for 24 microseconds to send the reset signal.
DavidEGrayson 1:102307d9b701 30 }