On board LED blinky example for Wio cellular targets - Seeed Wio 3G and Wio LTE-M1/NB1(BG96)

Dependencies:   WS2812 PixelArray

Committer:
MACRUM
Date:
Thu Aug 09 06:44:01 2018 +0000
Revision:
0:1f050f0c9bec
Child:
1:194e3cf73e72
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:1f050f0c9bec 1 #include "mbed.h"
MACRUM 0:1f050f0c9bec 2 #include "WS2812.h"
MACRUM 0:1f050f0c9bec 3 #include "PixelArray.h"
MACRUM 0:1f050f0c9bec 4
MACRUM 0:1f050f0c9bec 5 #define WS2812_BUF 8
MACRUM 0:1f050f0c9bec 6 #define NUM_COLORS 8
MACRUM 0:1f050f0c9bec 7 #define NUM_LEDS_PER_COLOR 8
MACRUM 0:1f050f0c9bec 8 #define H0 8
MACRUM 0:1f050f0c9bec 9 #define L0 32
MACRUM 0:1f050f0c9bec 10 #define H1 17
MACRUM 0:1f050f0c9bec 11 #define L1 32
MACRUM 0:1f050f0c9bec 12
MACRUM 0:1f050f0c9bec 13 DigitalOut LEDPower(PE_8, 1);
MACRUM 0:1f050f0c9bec 14 PixelArray px(WS2812_BUF);
MACRUM 0:1f050f0c9bec 15 WS2812 ws(PB_1, WS2812_BUF, H0, L0, H1, L1);
MACRUM 0:1f050f0c9bec 16
MACRUM 0:1f050f0c9bec 17 const int colorbuf[NUM_COLORS] = {0x000000, 0x2f0000,0x2f2f00,0x002f00,0x002f2f,0x00002f,0x2f002f, 0x2f2f2f};
MACRUM 0:1f050f0c9bec 18
MACRUM 0:1f050f0c9bec 19 // main() runs in its own thread in the OS
MACRUM 0:1f050f0c9bec 20 int main()
MACRUM 0:1f050f0c9bec 21 {
MACRUM 0:1f050f0c9bec 22 ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling
MACRUM 0:1f050f0c9bec 23
MACRUM 0:1f050f0c9bec 24 // for each of the colours (j) write out 10 of them
MACRUM 0:1f050f0c9bec 25 // the pixels are written at the colour*10, plus the colour position
MACRUM 0:1f050f0c9bec 26 // all modulus 60 so it wraps around
MACRUM 0:1f050f0c9bec 27 for (int i = 0; i < WS2812_BUF; i++) {
MACRUM 0:1f050f0c9bec 28 px.Set(i, colorbuf[i]);
MACRUM 0:1f050f0c9bec 29 px.SetI(i, 0x80);
MACRUM 0:1f050f0c9bec 30 }
MACRUM 0:1f050f0c9bec 31
MACRUM 0:1f050f0c9bec 32 int col = 0;
MACRUM 0:1f050f0c9bec 33
MACRUM 0:1f050f0c9bec 34 while (true) {
MACRUM 0:1f050f0c9bec 35 ws.write_offsets(px.getBuf(), col, col, col);
MACRUM 0:1f050f0c9bec 36 col++;
MACRUM 0:1f050f0c9bec 37 if (col >= WS2812_BUF) {
MACRUM 0:1f050f0c9bec 38 col = 0;
MACRUM 0:1f050f0c9bec 39 }
MACRUM 0:1f050f0c9bec 40 wait(0.5);
MACRUM 0:1f050f0c9bec 41 }
MACRUM 0:1f050f0c9bec 42 }