'**************************************************************** '* Name : NeoPixelBitBang32MHz.pbp '* Author : Michel Jasmin '* Notice : Thanks to The Signal Path dot com BLOG '* : Tutorial on Programming the NeoPixel (WS2812) RGB LEDs '* : http://thesignalpath.com/blogs/2014/07/14/watcheditdeletetutorial-on-programming-the-neopixel-ws2812-rgb-leds-equipment-giveaway/ '* Date : 2014-10-10 '* Version : 1.0 '* Notes : This file Bit Bang "NeoPixValue" to "NeoPin" on a PIC running @ 32MHz. '* : Each bit is tested and "NeoPin" is pulsed: '* : 400ns if bit is zero '* : 800ns if bit is one '**************************************************************** 'There's a lot of includes: let the compiler work for us! IF NeoPixValue.7 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF IF NeoPixValue.6 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF IF NeoPixValue.5 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF IF NeoPixValue.4 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF IF NeoPixValue.3 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF IF NeoPixValue.2 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF IF NeoPixValue.1 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF IF NeoPixValue.0 = 0 THEN NeoPin = 1 ASM nop nop ENDASM NeoPin = 0 ELSE NeoPin = 1 ASM nop nop nop nop ENDASM NeoPin = 0 ENDIF