Demonstrates charlieplexing of 7segment displays using MAX6951
Dependencies: MAX7219 max32630fthr
main.cpp
- Committer:
- davidanasco
- Date:
- 2022-01-14
- Revision:
- 2:45be34b93076
- Parent:
- 0:e7b590765c9a
File content as of revision 2:45be34b93076:
#include "mbed.h" #include "max32630fthr.h" #include "USBSerial.h" #include "max7219.h" #define ESC 0x1B MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3); // Hardware serial port over DAPLink Serial daplink(USBTX, USBRX); // declare pins DigitalOut bLED(LED3); DigitalIn push(P2_3, PullUp); int main(){ for(int ii=0;ii<3;ii++){ // blink blue 3 times bLED = LED_OFF; wait(0.5); bLED = LED_ON; wait(0.5); bLED = LED_OFF; } Max7219 segDriver(P5_1, P5_2, P5_0, P4_7); max7219_configuration_t segConfig = { .device_number = 1, .decode_mode = 0x0f, .intensity = Max7219::MAX7219_INTENSITY_F, .scan_limit = Max7219::MAX7219_SCAN_4 }; char buffer[32]; daplink.printf("%c[2J", ESC); //clear screen daplink.printf("%c[H", ESC); //move cursor to Home daplink.printf("< 7SEG DEMO >\r\n\n"); segDriver.set_display_test(); wait(0.5); segDriver.clear_display_test(); segDriver.init_device(segConfig); segDriver.enable_device(1); segDriver.clear_digit(1, Max7219::MAX7219_D0_P0); wait(0.5); int number = 0; while(1){ daplink.printf("display #%d\r\n\n",number); segDriver.write_digit(1, Max7219::MAX7219_D0_P0, number); wait(1); if(number==15) number = 0; else number++; } }