6 #include "MAX7219_Base.hpp" 
   23     0b00000000, 0b01110111, 0b00011111, 0b01001110, 
 
   24     0b00111101, 0b01001111, 0b01000111, 0b01011110, 
 
   25     0b00010111, 0b00110000, 0b00111100, 0b00000111, 
 
   26     0b00001110, 0b01110110, 0b00010101, 0b00011101, 
 
   27     0b01100111, 0b01110011, 0b00000101, 0b01011011, 
 
   28     0b00001111, 0b00011100, 0b00100111, 0b00111110, 
 
   29     0b00110111, 0b00111011, 0b01101101, 0b01001110, 
 
   30     0b00010011, 0b01111000, 0b01100010, 0b00001000, 
 
   31     0b00000000, 0b00000000, 0b00100010, 0b01100011, 
 
   32     0b01011011, 0b01100111, 0b01111101, 0b00000010, 
 
   33     0b01001110, 0b01111000, 0b01100011, 0b00110001, 
 
   34     0b00000100, 0b00000001, 0b00001000, 0b00100101, 
 
   35     0b01111110, 0b00110000, 0b01101101, 0b01111001, 
 
   36     0b00110011, 0b01011011, 0b01011111, 0b01110000, 
 
   37     0b01111111, 0b01111011, 0b00000000, 0b01000100, 
 
   38     0b00110001, 0b00001001, 0b00000111, 0b01100101, 
 
   78         sendRaw((digit % 8) + 1, value, digit / 8);
 
  107     int16_t 
display(
long number, int16_t startDigit = 0,
 
  108                     int16_t endDigit = -1) {
 
  110             startDigit += getNumberOfDigits();
 
  112             endDigit += getNumberOfDigits();
 
  113         unsigned long anumber = abs(number);
 
  114         int16_t i = startDigit;
 
  118         } 
while (anumber && i <= endDigit);
 
  119         if (number < 0 && i <= endDigit) {
 
  120             sendDigit(i++, 0b00000001); 
 
  123             for (int16_t i = startDigit; i <= endDigit;)
 
  124                 sendDigit(i++, 0b00000001);
 
  127             while (i <= endDigit)
 
  128                 sendDigit(i++, 0b00000000);
 
  130         return endDigit - startDigit;
 
  134     int16_t 
display(
int number, int16_t startDigit = 0, int16_t endDigit = -1) {
 
  135         return display(
long(number), startDigit, endDigit);
 
  158     int16_t 
display(
unsigned long number, int16_t startDigit = 0,
 
  159                     int16_t endDigit = -1) {
 
  161             startDigit += getNumberOfDigits();
 
  163             endDigit += getNumberOfDigits();
 
  164         int16_t i = startDigit;
 
  168         } 
while (number && i <= endDigit);
 
  170             for (int16_t i = startDigit; i <= endDigit;)
 
  171                 sendDigit(i++, 0b00000001);
 
  174             while (i <= endDigit)
 
  175                 sendDigit(i++, 0b00000000);
 
  177         return endDigit - startDigit;
 
  181     int16_t 
display(
unsigned int number, int16_t startDigit = 0,
 
  182                     int16_t endDigit = -1) {
 
  183         return display((
unsigned long)(number), startDigit, endDigit);
 
  196     int16_t 
display(
const char *text, int16_t startPos = 0) {
 
  198             startPos += getNumberOfDigits();
 
  199         int16_t i = getNumberOfDigits() - startPos;
 
  201         while (*text && (i > 0 || *text == 
'.')) {
 
  206                     sendDigit(i, prevD | 0b10000000);
 
  210                     sendDigit(--i, 0b10000000);
 
  213             } 
else if (c >= 
'@' && c <= 
'_')
 
  215             else if (c >= 
'!' && c <= 
'?')
 
  217             else if (c >= 
'a' && c <= 
'z')
 
  222         return getNumberOfDigits() - i - startPos;
 
  235             digit += getNumberOfDigits();
 
  237         uint8_t c = value >= 0x0A 
 
  261     int16_t 
displayHex(
unsigned long number, int16_t startDigit = 0,
 
  262                        int16_t endDigit = -1) {
 
  264             startDigit += getNumberOfDigits();
 
  266             endDigit += getNumberOfDigits();
 
  267         int16_t i = startDigit;
 
  269             printHexChar(i++, uint8_t(number));
 
  271         } 
while (number && i <= endDigit);
 
  273             for (int16_t i = startDigit; i <= endDigit;)
 
  274                 sendDigit(i++, 0b00000001);
 
  277             while (i <= endDigit)
 
  278                 sendDigit(i++, 0b00000000);
 
  280         return endDigit - startDigit;