69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
let gpio = require("gpio");
|
|
let gpio_spi_mosi = "PA7";
|
|
let gpio_spi_sck = "PB3";
|
|
let gpio_spi_cs = "PA4";
|
|
gpio.init(gpio_spi_mosi, "outputPushPull", "none");
|
|
gpio.init(gpio_spi_sck, "outputPushPull", "none");
|
|
gpio.init(gpio_spi_cs, "outputPushPull", "none");
|
|
|
|
function leds(addr, data) {
|
|
gpio.write(gpio_spi_mosi, false);
|
|
gpio.write(gpio_spi_sck, false);
|
|
gpio.write(gpio_spi_cs, false);
|
|
|
|
let mask = 0x80;
|
|
for (let i = 0; i < 8; i++) {
|
|
gpio.write(gpio_spi_mosi, (addr & mask) !== 0);
|
|
gpio.write(gpio_spi_sck, true);
|
|
gpio.write(gpio_spi_sck, false);
|
|
mask >>= 1;
|
|
}
|
|
|
|
for (let i = 0; i < 8; i++) {
|
|
gpio.write(gpio_spi_mosi, data[i] !== ' ' && data[i] !== '0');
|
|
gpio.write(gpio_spi_sck, true);
|
|
gpio.write(gpio_spi_sck, false);
|
|
}
|
|
|
|
gpio.write(gpio_spi_cs, true);
|
|
gpio.write(gpio_spi_mosi, true);
|
|
gpio.write(gpio_spi_sck, true);
|
|
}
|
|
|
|
|
|
// Initialize MAX7219 device
|
|
leds(0xFF, "00000000");
|
|
leds(0x0C, "00000001");
|
|
leds(0x09, "00000000");
|
|
leds(0x0A, "00000111");
|
|
leds(0x0B, "00000111");
|
|
|
|
for (let loop_counter = 0; loop_counter < 10; loop_counter++) {
|
|
// Draw the pattern (0 = off, 1 = on)
|
|
leds(0x1, " **** ");
|
|
leds(0x2, " * * ");
|
|
leds(0x3, "* *");
|
|
leds(0x4, "* *");
|
|
leds(0x5, "* *");
|
|
leds(0x6, "* *");
|
|
leds(0x7, " * * ");
|
|
leds(0x8, " **** ");
|
|
|
|
delay(250); // Wait 1/4 second
|
|
|
|
// Draw the pattern (0 = off, 1 = on)
|
|
leds(0x1, " **** ");
|
|
leds(0x2, " * * ");
|
|
leds(0x3, "* *");
|
|
leds(0x4, "* * * *");
|
|
leds(0x5, "* *");
|
|
leds(0x6, "* **** *");
|
|
leds(0x7, " * * ");
|
|
leds(0x8, " **** ");
|
|
|
|
delay(250); // Wait 1/4 second
|
|
}
|
|
|
|
gpio.init(gpio_spi_mosi, "analog", "none");
|
|
gpio.init(gpio_spi_sck, "analog", "none");
|
|
gpio.init(gpio_spi_cs, "analog", "none"); |