#include <SPI.h>
#define MAX7219_REG_DECODEMODE 0x09
#define MAX7219_REG_INTENSITY 0x0A
#define MAX7219_REG_SCANLIMIT 0x0B
#define MAX7219_REG_SHUTDOWN 0x0C
#define MAX7219_REG_DISPLAYTEST 0x0F
const int csPin = 10;
void setup() {
SPI.begin();
pinMode(csPin, OUTPUT);
sendCommand(MAX7219_REG_DECODEMODE, 0x00);
sendCommand(MAX7219_REG_INTENSITY, 0x0A);
sendCommand(MAX7219_REG_SCANLIMIT, 0x07);
sendCommand(MAX7219_REG_SHUTDOWN, 0x01);
sendCommand(MAX7219_REG_DISPLAYTEST, 0x00);
sendCommand(1, 0b00000000);
sendCommand(2, 0b01000010);
sendCommand(3, 0b10100101);
sendCommand(4, 0b00000000);
sendCommand(5, 0b00011000);
sendCommand(6, 0b01000010);
sendCommand(7, 0b00111100);
sendCommand(8, 0b00011000);
}
void loop() {
}
void sendCommand(byte reg, byte data) {
digitalWrite(csPin, LOW);
SPI.transfer(reg);
SPI.transfer(data);
digitalWrite(csPin, HIGH);
}