Demo MAX7219 library on MIKROELEKTRONIKA Serial 7-Seg Display 8-Digit
Fork of MAX7219 by
Demo MAX7219 library on MIKROELEKTRONIKA Serial 7-Seg Display 8-Digit This demo has been tested on NUCLEO-F411RE
For 7 segments display : https://www.mikroe.com/serial-7-seg-8-digit-board
For MAX7219 https://www.maximintegrated.com/en/products/power/display-power-control/MAX7219.html
use library https://os.mbed.com/teams/Maxim-Integrated/code/MAX7219/
7 segments display is connected to default SPI on Arduino connectors. STM32 MISO on RC5_PB5 (MOSI) STM32 MOSI on MISO STM32 SCK on RC3_RF3 (SCK) STM32 SS on CS0 5v GND
see manual (https://download.mikroe.com/documents/add-on-boards/other/display/serial-7seg-8-digit-display/serial-7seg-8-digit-display-manual-v100.pdf ) and photo for details
main.cpp@5:d181c7532341, 2018-03-23 (annotated)
- Committer:
- cdupaty
- Date:
- Fri Mar 23 14:26:12 2018 +0000
- Revision:
- 5:d181c7532341
Demo MAX7219 library on MIKROELEKTRONIKA Serial 7-Seg Display 8-Digit; Update 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cdupaty | 5:d181c7532341 | 1 | /* C.Dupaty |
cdupaty | 5:d181c7532341 | 2 | * 03-2018 |
cdupaty | 5:d181c7532341 | 3 | * Demo MAX7219 library on MIKROELEKTRONIKA Serial 7-Seg Display 8-Digit |
cdupaty | 5:d181c7532341 | 4 | * https://www.mikroe.com/serial-7-seg-8-digit-board |
cdupaty | 5:d181c7532341 | 5 | * https://www.maximintegrated.com/en/products/power/display-power-control/MAX7219.html |
cdupaty | 5:d181c7532341 | 6 | * see library here https://os.mbed.com/teams/Maxim-Integrated/code/MAX7219/ |
cdupaty | 5:d181c7532341 | 7 | */ |
cdupaty | 5:d181c7532341 | 8 | |
cdupaty | 5:d181c7532341 | 9 | #include "mbed.h" |
cdupaty | 5:d181c7532341 | 10 | #include "max7219.h" |
cdupaty | 5:d181c7532341 | 11 | |
cdupaty | 5:d181c7532341 | 12 | Max7219 max7219(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS); // satndard SPI on NUCLEO BOARD |
cdupaty | 5:d181c7532341 | 13 | |
cdupaty | 5:d181c7532341 | 14 | // print decimal number on the display |
cdupaty | 5:d181c7532341 | 15 | void affN(unsigned int n) |
cdupaty | 5:d181c7532341 | 16 | { |
cdupaty | 5:d181c7532341 | 17 | // 7 segments code for print numbers [0..9] see MAX7219 datasheet |
cdupaty | 5:d181c7532341 | 18 | const unsigned char code7seg[]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B}; |
cdupaty | 5:d181c7532341 | 19 | int i = 1; |
cdupaty | 5:d181c7532341 | 20 | while (n != 0) |
cdupaty | 5:d181c7532341 | 21 | { |
cdupaty | 5:d181c7532341 | 22 | max7219.write_digit(1, i++, code7seg[n % 10]); |
cdupaty | 5:d181c7532341 | 23 | n /= 10; |
cdupaty | 5:d181c7532341 | 24 | } |
cdupaty | 5:d181c7532341 | 25 | while(i<9) max7219.write_digit(1, i++, code7seg[0]); |
cdupaty | 5:d181c7532341 | 26 | } |
cdupaty | 5:d181c7532341 | 27 | |
cdupaty | 5:d181c7532341 | 28 | int main() |
cdupaty | 5:d181c7532341 | 29 | { |
cdupaty | 5:d181c7532341 | 30 | int nb=0; |
cdupaty | 5:d181c7532341 | 31 | max7219_configuration_t cfg = { |
cdupaty | 5:d181c7532341 | 32 | .device_number = 1, // device number (only one in this demo) |
cdupaty | 5:d181c7532341 | 33 | .decode_mode = 0, // mode 0, no decode (see MAX7219 datasheet page 7) |
cdupaty | 5:d181c7532341 | 34 | .intensity = Max7219::MAX7219_INTENSITY_4, // intensity of light ( 1 to 8) |
cdupaty | 5:d181c7532341 | 35 | .scan_limit = Max7219::MAX7219_SCAN_8 // nb of digits to print |
cdupaty | 5:d181c7532341 | 36 | }; |
cdupaty | 5:d181c7532341 | 37 | max7219.init_device(cfg); |
cdupaty | 5:d181c7532341 | 38 | max7219.enable_device(1); |
cdupaty | 5:d181c7532341 | 39 | max7219.set_display_test(); // flash all segments for test |
cdupaty | 5:d181c7532341 | 40 | wait(1); |
cdupaty | 5:d181c7532341 | 41 | max7219.clear_display_test(); |
cdupaty | 5:d181c7532341 | 42 | // a simple 32 bits counter |
cdupaty | 5:d181c7532341 | 43 | while (1) { |
cdupaty | 5:d181c7532341 | 44 | affN(nb++); |
cdupaty | 5:d181c7532341 | 45 | if(nb>=4000000000) nb=0; // for example |
cdupaty | 5:d181c7532341 | 46 | wait(0.1); |
cdupaty | 5:d181c7532341 | 47 | } |
cdupaty | 5:d181c7532341 | 48 | } |