Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: USBDevice max32630fthr
Fork of MAXREFDES220# by
main.cpp
00001 #include "mbed.h" 00002 #include "USBSerial.h" 00003 #include "version.h" 00004 #include "DSInterface.h" 00005 #include "Peripherals.h" 00006 #include "max32630fthr.h" 00007 #include "SSInterface.h" 00008 #include "SSBootloaderComm.h" 00009 #include "SSMAX30101Comm.h" 00010 00011 #ifndef MAXIM_PLATFORM_NAME 00012 #define MAXIM_PLATFORM_NAME "Pegasus" 00013 #endif 00014 00015 #if ENABLE_LED_STATUS 00016 //Set yellow light during boot 00017 DigitalOut rLED(LED1, LED_ON); 00018 DigitalOut gLED(LED2, LED_ON); 00019 DigitalOut bLED(LED3, LED_OFF); 00020 #endif 00021 00022 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3); 00023 00024 // Virtual serial port over USB 00025 USBSerial microUSB(0x1f00, 0x2012, 0x0001, false); 00026 // Hardware serial port over DAPLink 00027 Serial daplink(USBRX, USBTX, 115200); 00028 00029 //GUI/Terminal Interface 00030 DSInterface dsInterface(µUSB); 00031 00032 //SmartSensor Interface 00033 I2C ssI2C(P3_4, P3_5); 00034 PinName ss_mfio(P5_4); 00035 PinName ss_reset(P5_6); 00036 SSInterface ssInterface(ssI2C, ss_mfio, ss_reset); 00037 00038 SSBootloaderComm ssBoot(µUSB, &ssInterface, &dsInterface); 00039 SSMAX30101Comm ssMAX30101(µUSB, &ssInterface, &dsInterface); 00040 00041 00042 #ifdef ENABLE_LED_STATUS 00043 static int led_on_ms = 100; 00044 static int led_off_ms = 1900; 00045 static Timer blink_timer; 00046 static int current_state = 0; 00047 void update_led_state() 00048 { 00049 if (current_state == LED_ON) { 00050 if (blink_timer.read_ms() > led_on_ms) { 00051 gLED = LED_OFF; 00052 current_state = LED_OFF; 00053 blink_timer.reset(); 00054 } 00055 } 00056 else 00057 { 00058 if (blink_timer.read_ms() > led_off_ms) { 00059 gLED = LED_ON; 00060 current_state = LED_ON; 00061 blink_timer.reset(); 00062 } 00063 } 00064 } 00065 #endif 00066 00067 void print_build_version() 00068 { 00069 printf("\n\nPegasus mBED EVKit\r\n"); 00070 printf("Fw version: %s, mbed version: %d\r\n", FIRMWARE_VERSION, MBED_VERSION); 00071 printf("Build source: (%s) %s\r\n", BUILD_SOURCE_BRANCH, BUILD_SOURCE_HASH); 00072 printf("Build time: %s %s\r\n\n", __TIME__, __DATE__); 00073 } 00074 00075 int main() 00076 { 00077 daplink.printf("Init NVIC Priorities...\r\n"); 00078 fflush(stdout); 00079 NVIC_SetPriority(GPIO_P0_IRQn, 5); 00080 NVIC_SetPriority(GPIO_P1_IRQn, 5); 00081 NVIC_SetPriority(GPIO_P2_IRQn, 5); 00082 NVIC_SetPriority(GPIO_P3_IRQn, 5); 00083 NVIC_SetPriority(GPIO_P4_IRQn, 5); 00084 NVIC_SetPriority(GPIO_P5_IRQn, 5); 00085 NVIC_SetPriority(GPIO_P6_IRQn, 5); 00086 print_build_version(); 00087 daplink.printf("daplink serial port\r\n"); 00088 microUSB.printf("micro USB serial port\r\n"); 00089 00090 dsInterface.set_fw_version(FIRMWARE_VERSION); 00091 dsInterface.set_fw_platform(MAXIM_PLATFORM_NAME); 00092 Peripherals::setUSBSerial(µUSB); 00093 00094 ssI2C.frequency(400000); 00095 dsInterface.set_fw_platform(ssInterface.get_ss_platform_name()); 00096 dsInterface.set_fw_version(ssInterface.get_ss_fw_version()); 00097 dsInterface.add_sensor_comm(&ssBoot); 00098 dsInterface.add_sensor_comm(&ssMAX30101); 00099 00100 #ifdef ENABLE_LED_STATUS 00101 //Indicate we're done with setup 00102 rLED = LED_OFF; 00103 gLED = LED_OFF; 00104 bLED = LED_OFF; 00105 00106 blink_timer.start(); 00107 #endif 00108 00109 while(1) { 00110 USBSerial *serial = µUSB; 00111 uint8_t ch; 00112 while (serial->readable()) { 00113 ch = serial->_getc(); 00114 dsInterface.enable_console_interface(); 00115 dsInterface.build_command(ch); 00116 } 00117 00118 dsInterface.data_report_execute(); 00119 #ifdef ENABLE_LED_STATUS 00120 update_led_state(); 00121 #endif 00122 } 00123 }
Generated on Mon Jul 18 2022 23:37:28 by
