8#if defined(__MBED__) && !defined(ARDUINO)
10#define delay ThisThread::sleep_for
18#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
21#define bitSet(value, bit) ((value) |= (1UL << (bit)))
24#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
27#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
30#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
33#define pgm_read_word(addr) (*(const unsigned short *)(addr))
36#define pgm_read_dword(addr) (*(const unsigned long *)(addr))
311#ifndef USE_LOCAL_FONT
312#define USE_LOCAL_FONT 1
319#define MAX_INTENSITY 0xf
320#define MAX_SCANLIMIT 7
644 void clear(uint8_t startDev, uint8_t endDev);
659 bool getBuffer(uint16_t col, uint8_t size, uint8_t *pd);
675 return getColumn((c / COL_SIZE), c % COL_SIZE);
690 bool getPoint(uint8_t r, uint16_t c);
705 bool setBuffer(uint16_t col, uint8_t size, uint8_t *pd);
724 return setColumn((c / COL_SIZE), c % COL_SIZE, value);
741 bool setPoint(uint8_t r, uint16_t c,
bool state);
755 inline bool setRow(uint8_t r, uint8_t value)
775 bool setRow(uint8_t startDev, uint8_t endDev, uint8_t r, uint8_t value);
866 bool clear(uint8_t buf);
878 uint8_t
getColumn(uint8_t buf, uint8_t c);
890 uint8_t
getRow(uint8_t buf, uint8_t r);
905 bool setColumn(uint8_t buf, uint8_t c, uint8_t value);
920 bool setRow(uint8_t buf, uint8_t r, uint8_t value);
972 uint8_t
getChar(uint16_t c, uint8_t size, uint8_t *buf);
987 uint8_t
setChar(uint16_t col, uint16_t c);
1060 uint8_t dig[ROW_SIZE];
1090#if defined(__MBED__) && !defined(ARDUINO)
1129 bool copyRow(uint8_t buf, uint8_t rSrc, uint8_t rDest);
1130 bool copyColumn(uint8_t buf, uint8_t cSrc, uint8_t cDest);
1135 bool copyC(uint8_t buf, uint8_t cSrc, uint8_t cDest);
1136 bool copyR(uint8_t buf, uint8_t rSrc, uint8_t rDest);
1137 uint8_t
getC(uint8_t buf, uint8_t c);
1138 uint8_t
getR(uint8_t buf, uint8_t r);
1139 bool setC(uint8_t buf, uint8_t c, uint8_t value);
1140 bool setR(uint8_t buf, uint8_t r, uint8_t value);
Definition MD_MAX72xx.h:326
uint8_t _maxDevices
Definition MD_MAX72xx.h:1077
void wraparound(controlValue_t mode)
Definition MD_MAX72xx.h:850
void setFontInfoDefault(void)
Definition MD_MAX72xx_font.cpp:41
bool setPoint(uint8_t r, uint16_t c, bool state)
Definition MD_MAX72xx_pix.cpp:100
bool _wrapAround
Definition MD_MAX72xx.h:1087
void printBinary(uint8_t inByte)
bool setFont(fontType_t *f)
Definition MD_MAX72xx_font.cpp:149
uint8_t _clkPin
Definition MD_MAX72xx.h:1071
void controlHardware(uint8_t dev, controlRequest_t mode, int value)
Definition MD_MAX72xx.cpp:188
bool setBuffer(uint16_t col, uint8_t size, uint8_t *pd)
Definition MD_MAX72xx_pix.cpp:63
uint8_t _csPin
Definition MD_MAX72xx.h:1072
MD_MAX72XX(moduleType_t mod, uint8_t csPin, uint8_t numDevices=1)
int32_t getFontCharOffset(uint16_t c)
Definition MD_MAX72xx_font.cpp:127
void setModuleParameters(moduleType_t mod)
uint16_t getColumnCount(void)
Definition MD_MAX72xx.h:552
bool _hardwareSPI
Definition MD_MAX72xx.h:1073
void update(controlValue_t mode)
Definition MD_MAX72xx.h:819
const uint8_t fontType_t
Definition MD_MAX72xx.h:359
uint8_t getChar(uint16_t c, uint8_t size, uint8_t *buf)
Definition MD_MAX72xx_font.cpp:160
void spiSend(void)
Definition MD_MAX72xx.cpp:383
void update(void)
Definition MD_MAX72xx.h:833
void begin(void)
Definition MD_MAX72xx.cpp:126
uint8_t getR(uint8_t buf, uint8_t r)
Definition MD_MAX72xx_buf.cpp:191
uint8_t getDeviceCount(void)
Definition MD_MAX72xx.h:542
uint8_t getRow(uint8_t buf, uint8_t r)
Definition MD_MAX72xx_buf.cpp:148
void clear(void)
Definition MD_MAX72xx.h:630
bool _hwDigRows
Definition MD_MAX72xx.h:1066
deviceInfo_t * _matrix
Definition MD_MAX72xx.h:1078
void(* _cbShiftDataOut)(uint8_t dev, transformType_t t, uint8_t colData)
Definition MD_MAX72xx.h:1083
fontType_t * getFont(void)
Definition MD_MAX72xx.h:1050
bool setC(uint8_t buf, uint8_t c, uint8_t value)
Definition MD_MAX72xx_buf.cpp:232
moduleType_t _mod
Definition MD_MAX72xx.h:1065
bool setR(uint8_t buf, uint8_t r, uint8_t value)
Definition MD_MAX72xx_buf.cpp:264
MD_MAX72XX(moduleType_t mod, SPIClass &spi, uint8_t csPin, uint8_t numDevices=1)
bool copyColumn(uint8_t buf, uint8_t cSrc, uint8_t cDest)
Definition MD_MAX72xx_buf.cpp:59
uint8_t * _spiData
Definition MD_MAX72xx.h:1079
controlRequest_t
Definition MD_MAX72xx.h:369
@ INTENSITY
Definition MD_MAX72xx.h:373
@ SCANLIMIT
Definition MD_MAX72xx.h:371
@ UPDATE
Definition MD_MAX72xx.h:377
@ DECODE
Set the MAX72XX 7 segment decode mode. Requires ON/OFF value. Library default is OFF.
Definition MD_MAX72xx.h:376
@ WRAPAROUND
Definition MD_MAX72xx.h:379
@ TEST
Set the MAX72XX in test mode. Requires ON/OFF value. Library default is OFF.
Definition MD_MAX72xx.h:375
@ SHUTDOWN
Shut down the MAX72XX. Requires ON/OFF value. Library default is OFF.
Definition MD_MAX72xx.h:370
SPIClass & _spiRef
Definition MD_MAX72xx.h:1074
uint8_t getC(uint8_t buf, uint8_t c)
Definition MD_MAX72xx_buf.cpp:156
void spiClearBuffer(void)
Definition MD_MAX72xx.cpp:377
uint8_t getMaxFontWidth(void)
Definition MD_MAX72xx.h:1018
moduleType_t
Definition MD_MAX72xx.h:337
@ DR1CR1RR1_HW
Structured name equivalent to ICSTATION_HW.
Definition MD_MAX72xx.h:350
@ ICSTATION_HW
Use ICStation style hardware module.
Definition MD_MAX72xx.h:341
@ DR0CR1RR1_HW
Structured name.
Definition MD_MAX72xx.h:346
@ DR1CR0RR0_HW
Structured name equivalent to FC16_HW.
Definition MD_MAX72xx.h:347
@ DR0CR0RR0_HW
Structured name.
Definition MD_MAX72xx.h:343
@ DR1CR0RR1_HW
Structured name.
Definition MD_MAX72xx.h:348
@ DR0CR1RR0_HW
Structured name equivalent to GENERIC_HW.
Definition MD_MAX72xx.h:345
@ FC16_HW
Use FC-16 style hardware module.
Definition MD_MAX72xx.h:339
@ PAROLA_HW
Use the Parola style hardware modules.
Definition MD_MAX72xx.h:340
@ DR0CR0RR1_HW
Structured name.
Definition MD_MAX72xx.h:344
@ DR1CR1RR0_HW
Structured name equivalent to PAROLA_HW.
Definition MD_MAX72xx.h:349
@ GENERIC_HW
Use 'generic' style hardware modules commonly available.
Definition MD_MAX72xx.h:338
bool copyR(uint8_t buf, uint8_t rSrc, uint8_t rDest)
Definition MD_MAX72xx_buf.cpp:112
uint8_t getFontHeight(void)
Definition MD_MAX72xx.h:1034
void setShiftDataInCallback(uint8_t(*cb)(uint8_t dev, transformType_t t))
Definition MD_MAX72xx.h:590
bool setRow(uint8_t r, uint8_t value)
Definition MD_MAX72xx.h:755
void update(uint8_t buf)
Definition MD_MAX72xx.h:946
bool _hwRevRows
Definition MD_MAX72xx.h:1068
bool getPoint(uint8_t r, uint16_t c)
Definition MD_MAX72xx_pix.cpp:81
uint8_t getColumn(uint8_t c)
Definition MD_MAX72xx.h:673
void flushBuffer(uint8_t buf)
Definition MD_MAX72xx.cpp:337
bool control(uint8_t dev, controlRequest_t mode, int value)
Definition MD_MAX72xx.cpp:272
bool transform(transformType_t ttype)
Definition MD_MAX72xx.h:787
controlValue_t
Definition MD_MAX72xx.h:391
@ OFF
General OFF status request.
Definition MD_MAX72xx.h:392
@ ON
General ON status request.
Definition MD_MAX72xx.h:393
bool _updateEnabled
Definition MD_MAX72xx.h:1086
bool setColumn(uint16_t c, uint8_t value)
Definition MD_MAX72xx.h:721
void loadFontInfo(void)
Definition MD_MAX72xx_font.cpp:52
void setModuleType(moduleType_t mod)
Definition MD_MAX72xx.h:566
bool copyRow(uint8_t buf, uint8_t rSrc, uint8_t rDest)
Definition MD_MAX72xx_buf.cpp:67
fontInfo_t _fontInfo
Definition MD_MAX72xx.h:1109
uint8_t _dataPin
Definition MD_MAX72xx.h:1070
transformType_t
Definition MD_MAX72xx.h:403
@ TFLR
Transform Flip Left to Right.
Definition MD_MAX72xx.h:408
@ TINV
Transform INVert (pixels inverted)
Definition MD_MAX72xx.h:411
@ TRC
Transform Rotate Clockwise 90 degrees.
Definition MD_MAX72xx.h:410
@ TSD
Transform Shift Down one pixel element.
Definition MD_MAX72xx.h:407
@ TSU
Transform Shift Up one pixel element.
Definition MD_MAX72xx.h:406
@ TSL
Transform Shift Left one pixel element.
Definition MD_MAX72xx.h:404
@ TFUD
Transform Flip Up to Down.
Definition MD_MAX72xx.h:409
@ TSR
Transform Shift Right one pixel element.
Definition MD_MAX72xx.h:405
uint8_t bitReverse(uint8_t b)
Definition MD_MAX72xx_buf.cpp:48
fontType_t * _fontData
Definition MD_MAX72xx.h:1108
bool transformBuffer(uint8_t buf, transformType_t ttype)
Definition MD_MAX72xx_buf.cpp:304
DigitalOut _cs
Definition MD_MAX72xx.h:1092
bool _hwRevCols
Definition MD_MAX72xx.h:1067
void controlLibrary(controlRequest_t mode, int value)
Definition MD_MAX72xx.cpp:232
void flushBufferAll(void)
Definition MD_MAX72xx.cpp:292
uint8_t setChar(uint16_t col, uint16_t c)
Definition MD_MAX72xx_font.cpp:188
uint8_t(* _cbShiftDataIn)(uint8_t dev, transformType_t t)
Definition MD_MAX72xx.h:1082
MD_MAX72XX(moduleType_t mod, uint8_t dataPin, uint8_t clkPin, uint8_t csPin, uint8_t numDevices=1)
Definition MD_MAX72xx.cpp:39
bool copyC(uint8_t buf, uint8_t cSrc, uint8_t cDest)
Definition MD_MAX72xx_buf.cpp:75
void control(controlRequest_t mode, int value)
Definition MD_MAX72xx.h:518
SPI _spi
Definition MD_MAX72xx.h:1091
void setShiftDataOutCallback(void(*cb)(uint8_t dev, transformType_t t, uint8_t colData))
Definition MD_MAX72xx.h:614
uint8_t getFontWidth(void)
Definition MD_MAX72xx_font.cpp:101
bool getBuffer(uint16_t col, uint8_t size, uint8_t *pd)
Definition MD_MAX72xx_pix.cpp:52
~MD_MAX72XX()
Definition MD_MAX72xx.cpp:177
Definition MD_MAX72xx.h:1059
uint8_t changed
Definition MD_MAX72xx.h:1061
Definition MD_MAX72xx.h:1098
uint16_t firstASCII
Definition MD_MAX72xx.h:1102
uint16_t lastASCII
Definition MD_MAX72xx.h:1103
uint16_t dataOffset
Definition MD_MAX72xx.h:1104
uint8_t height
Definition MD_MAX72xx.h:1100
uint8_t version
Definition MD_MAX72xx.h:1099
uint8_t widthMax
Definition MD_MAX72xx.h:1101