Demo MAX7219 library on MIKROELEKTRONIKA Serial 7-Seg Display 8-Digit

Dependencies:   mbed

Fork of MAX7219 by Maxim Integrated

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

/media/uploads/cdupaty/img_20180323_153158.jpg

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?

UserRevisionLine numberNew 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 }