Bayley Wang
/
foc-ed_in_the_bot_compact
robot
Diff: BREMS/BREMSConfig.cpp
- Revision:
- 181:d3510c8beab6
- Parent:
- 180:a783a972a867
- Child:
- 182:5ed20e4ce158
--- a/BREMS/BREMSConfig.cpp Fri Feb 09 00:48:26 2018 +0000 +++ b/BREMS/BREMSConfig.cpp Fri Feb 09 03:49:31 2018 +0000 @@ -3,6 +3,8 @@ #include "BREMSConfig.h" #include "BREMSStructs.h" #include "BufferedLogger.h" +#include "CommandProcessor.h" +#include "PreferenceWriter.h" #include "Filter.h" #include "config_pins.h" @@ -11,6 +13,8 @@ #include "config_loop.h" #include "config_logging.h" +#include "prefs.h" + void BREMSConfigRegisters(IOStruct *io) { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; @@ -88,22 +92,7 @@ } void BREMSStartupMsg(ReadDataStruct *read, Serial *pc) { - pc->printf("%s\n\r\n\r", "FOC'ed in the Bot Rev A."); - pc->printf("%s\n\r", "====Config Data===="); - pc->printf("Current Sensor Offset: %f mV\n\r", I_OFFSET); - pc->printf("Current Sensor Scale: %f mv/A\n\r", I_SCALE); - pc->printf("Bus Voltage: %f V\n\r", BUS_VOLTAGE); - pc->printf("Switching Frequency: %f KHz \n\r", F_SW / 1000.0f); - pc->printf("Polling Frequency: %f Hz \n\r", F_SLOW_LOOP); - pc->printf("Pole pairs: %d\n\r", (int) POLE_PAIRS); - pc->printf("Resolver lobes: %d\n\r", (int) RESOLVER_LOBES); - pc->printf("Loop KP_D: %f\n\r", KP_D); - pc->printf("Loop KI_D: %f\n\r", KI_D); - pc->printf("Loop KP_Q: %f\n\r", KP_Q); - pc->printf("Loop KI_Q: %f\n\r", KI_Q); - pc->printf("Ia offset: %f mV\n\r", read->ia_supp_offset); - pc->printf("Ib offset: %f mV\n\r", read->ib_supp_offset); - pc->printf("\n\r"); + pc->printf("%s\n", "FOC'ed in the Bot Rev A."); } void BREMSInit(IOStruct *io, ReadDataStruct *read, FOCStruct *foc, ControlStruct *control, bool tune) { @@ -111,12 +100,22 @@ io->en->write(0); io->pc = new Serial(USBTX, USBRX); - io->pc->baud(921600); + io->pc->baud(115200); io->pos = new PositionSensorEncoder(CPR, 0); io->logger = new BufferedLogger(LOG_PACKET_SIZE, (LOG_PAGE_SIZE-LOG_HEADER_SIZE)/(LOG_PACKET_SIZE+1), LOG_TX, LOG_RX, LOG_BAUD_RATE); + io->pref = new PreferenceWriter(6); wait_ms(750); + + BREMSStartupMsg(read, io->pc); + + cmd_reload(io->pc, io->pref); + if (_PREFS_VALID == 0) { + io->pc->printf("%s\n", "Stored config invalid"); + cmd_defaults(io->pc); + io->pc->printf("%s\n", "You should probably at least set throttle and current limits!"); + } io->throttle_in = new PwmIn(TH_PIN, TH_LIMIT_LOW, TH_LIMIT_HIGH); @@ -132,7 +131,7 @@ BREMSConfigRegisters(io); wait_ms(250); BREMSZeroCurrent(read); - BREMSStartupMsg(read, io->pc); + io->pc->printf("%s", ">"); control->d_integral = 0.0f; control->q_integral = 0.0f;