Files
arduino-libs/arduino-cli/libraries/Bluebit/DuinoplusMatrixLED.cpp
2024-07-20 22:09:06 +08:00

75 lines
1.1 KiB
C++
Raw Blame History

//
//
//
#include "DuinoplusMatrixLED.h"
MatrixLED::MatrixLED(uint16_t pinCs, uint16_t pinData, uint16_t pinClk, uint16_t w, uint16_t h) : GFXcanvas1(w, h), Max7219(pinCs, pinData, pinClk, (w*h)/64)
{
CS = pinCs;
DI = pinData;
CLK = pinClk;
pinMode(CS, OUTPUT);
pinMode(DI, OUTPUT);
pinMode(CLK, OUTPUT);
}
void MatrixLED::begin(uint8_t brightness){
setScanLimit(7);
shutdown(false);
setIntensity(brightness); //<2F><><EFBFBD><EFBFBD>
clear();
}
void MatrixLED::DrawLine(int line, int data)
{
uint8_t dat;
dat = (uint8_t)data;
for (int i = 0; i < 8; i++)
{
if ((dat >> i) & 0x01)
drawPixel(7 - i, line, 1);
else
drawPixel(7 - i, line, 0);
}
// writeDisplay();
}
void MatrixLED::DrawColumn(int column, int data)
{
uint8_t dat;
dat = (uint8_t)data;
for (int i = 0; i < 8; i++)
{
if ((dat >> i) & 0x01)
drawPixel(column, i, 1);
else
drawPixel(column, i, 0);
}
}
void MatrixLED::clear(void){
int j;
uint8_t *buf;
buf = getBuffer();
for (int j = 0; j < maxDevices * 8; j++){
*(buf + j) = 0;
}
clearDisplay();
}
void MatrixLED::writeDisplay(void){
uint8_t *buf;
buf = getBuffer();
update(buf);
}
//MatrixLED MatrixLED;