V1.1 For EVIC
Dependencies: SDFileSystem max32630fthr USBDevice
main.cpp
- Committer:
- china_sn0w
- Date:
- 2020-05-28
- Revision:
- 1:7530b7eb757a
- Parent:
- 0:5a9619496af2
- Child:
- 3:35b05d91568d
File content as of revision 1:7530b7eb757a:
/******************************************************************************* * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of Maxim Integrated * Products, Inc. shall not be used except as stated in the Maxim Integrated * Products, Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses * of trade secrets, proprietary technology, copyrights, patents, * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. ******************************************************************************* */ #include "mbed.h" #include "max32630fthr.h" #include "USBSerial.h" #include "I2CSlave.h" #include "CmdHandler.h" #include "DUT_RegConfig.h" #include "AVDD_CONFIG.h" #include "ServoRun.h" #include "SDFileSystem.h" #include "AnalogIn.h" #define EVIC void usb_rx_callback(void); void usb_receive(void); MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3); // Hardware serial port over DAPLink Serial uart(P3_1, P3_0); I2C i2c_v(P3_4, P3_5); // Virtual serial port over USB USBSerial microUSB; DigitalOut rLED(LED1); DigitalOut gLED(LED2); DigitalOut bLED(LED3); //======for EVIC #ifdef EVIC AnalogIn ain(AIN_1); DigitalOut xSHUT(P5_3); InterruptIn chip_int(P3_2); //AnalogIn() DigitalOut AVDDEN(P3_3); DigitalOut HIGH_EN(P5_6); DigitalOut A0(P4_0); DigitalOut PULSE(P5_1); DigitalOut DI(P5_2); SDFileSystem sd(P0_5, P0_6, P0_4, P0_7, "sd"); // mosi, miso, sclk, cs #endif //====== //======for Ofilm #ifdef OFILM DigitalOut xSHUT(P5_4); DigitalOut EN_Power(P5_3); DigitalOut EN_OSC(P5_5); InterruptIn chip_int(P3_3); #endif //====== //Queue<uint8_t, 2048> cmd_queue; Thread cmd_handle_thread; Thread coutinu_measure_thread; Thread Histogram_thread; Thread Sevo_Thread; //Thread usb_receive_thread; Semaphore usb_semph(32); // main() runs in its own thread in the OS // (note the calls to Thread::wait below for delays) int main() { //microUSB.printf("micro USB serial port\r\n"); float v = 2.7; uint8_t test = 0; float V_I[10]; #ifdef EVIC xSHUT = 1; AVDDEN = 1; HIGH_EN = 0; A0 = 0; DI = 0; PULSE = 0; #endif #ifdef OFILM xSHUT = 1; EN_Power = 0; EN_OSC = 0; #endif //uart.baud(115200); microUSB.attach(usb_rx_callback); chip_int.rise(InterruptHandle); rLED = LED_OFF; gLED = LED_OFF; bLED = LED_OFF; i2c_v.frequency(100000); SetVoltageAVDD(3.3); //wait(1); DUT_RegInit(); wait(1); //DUT_FirmwareInit(); cmd_handle_thread.start(CmdHandleTask); coutinu_measure_thread.start(ContinuousMeasureReport); Histogram_thread.start(HistogramReport); //usb_receive_thread.start(usb_receive); Sevo_Thread.start(ServoRunThread); while(1) { //microUSB.printf("micro USB serial port\r\n"); //microUSB.writeBlock((uint8_t*)"Hello", 5); bLED = !bLED; V_I[0] = ain.read()*5000.0f; HandleFreqReport(V_I); //SetVoltageAVDD(v); //v = v + 0.1; //if(v > 3.7) // v = 2.7; wait(2); //if(test < 10) // ServoRun(1,10);//Back 10mm //else if(test > 10) // ServoRun(0,10);//Forward 10mm //test++; //if(test == 20) // test = 0; } } void usb_rx_callback(void) { //usb_semph.release(); }