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

Dependencies:   WS2812 PixelArray

main.cpp

Committer:
MACRUM
Date:
2018-08-09
Revision:
0:1f050f0c9bec
Child:
1:194e3cf73e72

File content as of revision 0:1f050f0c9bec:

#include "mbed.h"
#include "WS2812.h"
#include "PixelArray.h"

#define WS2812_BUF 8
#define NUM_COLORS 8
#define NUM_LEDS_PER_COLOR 8
#define H0 8
#define L0 32
#define H1 17
#define L1 32

DigitalOut LEDPower(PE_8, 1);
PixelArray px(WS2812_BUF);
WS2812 ws(PB_1, WS2812_BUF, H0, L0, H1, L1);

const int colorbuf[NUM_COLORS] = {0x000000, 0x2f0000,0x2f2f00,0x002f00,0x002f2f,0x00002f,0x2f002f, 0x2f2f2f};

// main() runs in its own thread in the OS
int main()
{
    ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling

    // for each of the colours (j) write out 10 of them
    // the pixels are written at the colour*10, plus the colour position
    // all modulus 60 so it wraps around
    for (int i = 0; i < WS2812_BUF; i++) {
        px.Set(i, colorbuf[i]);
        px.SetI(i, 0x80);
    }

    int col = 0;

    while (true) {
        ws.write_offsets(px.getBuf(), col, col, col);
        col++;
        if (col >= WS2812_BUF) {
            col = 0;
        }
        wait(0.5);
    }
}