add MSX7219 example

This commit is contained in:
King Kévin 2017-03-07 17:31:25 +01:00
parent 858a32be93
commit 82513882f1
1 changed files with 12 additions and 7 deletions

19
main.c
View File

@ -40,8 +40,9 @@
#include "print.h" // printing utilities #include "print.h" // printing utilities
#include "usart.h" // USART utilities #include "usart.h" // USART utilities
#include "usb_cdcacm.h" // USB CDC ACM utilities #include "usb_cdcacm.h" // USB CDC ACM utilities
#include "led_tm1637.h" // TM1637 7-segment controller utilities
#include "rtc_ds1307.h" // DS1307 RTC utilities #include "rtc_ds1307.h" // DS1307 RTC utilities
#include "led_tm1637.h" // TM1637 7-segment controller utilities
#include "led_max7219.h" // MAX7219 7-segment controller utilities
#define WATCHDOG_PERIOD 10000 /**< watchdog period in ms */ #define WATCHDOG_PERIOD 10000 /**< watchdog period in ms */
@ -205,15 +206,17 @@ void main(void)
printf("current date: 20%02u-%02u-%02u %02u:%02u:%02u\n", rtc_ds1307_time[6], rtc_ds1307_time[5], rtc_ds1307_time[4], rtc_ds1307_time[2], rtc_ds1307_time[1], rtc_ds1307_time[0]); printf("current date: 20%02u-%02u-%02u %02u:%02u:%02u\n", rtc_ds1307_time[6], rtc_ds1307_time[5], rtc_ds1307_time[4], rtc_ds1307_time[2], rtc_ds1307_time[1], rtc_ds1307_time[0]);
} }
// setup TM1637 // setup TM1637 and MAX7219 7-segments displays
puts("setup 7-segment display: "); puts("setup 7-segment displays: ");
led_tm1637_setup(); led_tm1637_setup(); // setup TM1637
if (!led_tm1637_time(88,88)) { // test display led_max7219_setup(); // setup MAX7219
if (!led_tm1637_time(88,88)) { // test TM1637 display
puts("could not send time to TM1637\n"); puts("could not send time to TM1637\n");
} }
if (!led_tm1637_on()) { // switch on display if (!led_tm1637_on()) { // switch on TM1637 display
puts("could not switch on TM1637\n"); puts("could not switch on TM1637\n");
} }
led_max7219_test(true); // test MAX7219 display
for (uint32_t i=0; i<5000000; i++) { // wait a bit to have the user check the display for (uint32_t i=0; i<5000000; i++) { // wait a bit to have the user check the display
__asm__("nop"); __asm__("nop");
} }
@ -223,8 +226,10 @@ void main(void)
if (!led_tm1637_off()) { // switch off display if (!led_tm1637_off()) { // switch off display
puts("could not switch off TM1637\n"); puts("could not switch off TM1637\n");
} }
led_max7219_test(false); // go back in normal operation
led_max7219_off(); // switch display off
puts("OK\n"); puts("OK\n");
// main loop // main loop
puts("command input: ready\n"); puts("command input: ready\n");
bool action = false; // if an action has been performed don't go to sleep bool action = false; // if an action has been performed don't go to sleep