add function to display numbers
This commit is contained in:
parent
ffb14a09d1
commit
8e4b84f803
|
@ -234,3 +234,18 @@ bool led_max7219_text(char* text)
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_max7219_number(uint32_t number, uint8_t dots)
|
||||
{
|
||||
led_max7219_write(0x09FF); // enable BCD decoding on all 7 digits
|
||||
for (uint8_t digit=0; digit<8; digit++) { // go through digits
|
||||
if (0==digit) { // display 0 on 0 only to first digit
|
||||
led_max7219_write(((digit+1)<<8) + (number%10) + (((dots>>digit)&0x01)<<7)); // display digit
|
||||
} else if (0==number) { // display blank on other digits
|
||||
led_max7219_write(((digit+1)<<8) + 0x0F + (((dots>>digit)&0x01)<<7)); // display blank
|
||||
} else {
|
||||
led_max7219_write(((digit+1)<<8) + (number%10) + (((dots>>digit)&0x01)<<7)); // display digit
|
||||
}
|
||||
number /= 10; // get next digit
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,4 +44,8 @@ void led_max7219_intensity(uint8_t intensity);
|
|||
* @return false if string has unsupported characters
|
||||
*/
|
||||
bool led_max7219_text(char* text);
|
||||
|
||||
/** display number
|
||||
* @param[in] number number to display (8 digits max)
|
||||
* @param[in] dots set bit if dot on corresponding digit should be displayed
|
||||
*/
|
||||
void led_max7219_number(uint32_t number, uint8_t dots);
|
||||
|
|
Loading…
Reference in New Issue