From 06cc2f413d11911347ecdc330f720af9bd4400e0 Mon Sep 17 00:00:00 2001 From: matei jordache Date: Tue, 14 Nov 2023 21:03:05 -0500 Subject: [PATCH] got current sense readings! --- firmware/lib/currentsense/adc.cpp | 133 ++++++++++++++-------------- firmware/lib/currentsense/adc.h | 3 +- firmware/lib/currentsense/dma.cpp | 2 +- firmware/lib/currentsense/opamp.cpp | 107 ++++++++++------------ firmware/lib/currentsense/opamp.h | 1 + firmware/lib/currentsense/utils.cpp | 30 ++++--- firmware/src/main.cpp | 28 ++---- 7 files changed, 145 insertions(+), 159 deletions(-) diff --git a/firmware/lib/currentsense/adc.cpp b/firmware/lib/currentsense/adc.cpp index 5778d98..980885e 100644 --- a/firmware/lib/currentsense/adc.cpp +++ b/firmware/lib/currentsense/adc.cpp @@ -5,8 +5,6 @@ ADC_HandleTypeDef hadc2; DMA_HandleTypeDef hdma_adc1; DMA_HandleTypeDef hdma_adc2; -uint32_t HAL_RCC_ADC12_CLK_ENABLED = 0; - void MX_ADC1_Init(void) { ADC_MultiModeTypeDef multimode = {0}; @@ -21,7 +19,7 @@ void MX_ADC1_Init(void) hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc1.Init.LowPowerAutoWait = DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; - hadc1.Init.NbrOfConversion = 2; + hadc1.Init.NbrOfConversion = 3; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T2_TRGO; hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; @@ -35,18 +33,23 @@ void MX_ADC1_Init(void) if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) SIMPLEFOC_DEBUG("HAL ADC1 multimode configuration fail."); + // sConfig.Channel = ADC_CHANNEL_VOPAMP1; sConfig.Channel = ADC_CHANNEL_VOPAMP1; sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; sConfig.SingleDiff = ADC_SINGLE_ENDED; - sConfig.OffsetNumber = ADC_OFFSET_1; - sConfig.Offset = 0x7FF; - sConfig.OffsetSaturation = ENABLE; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) SIMPLEFOC_DEBUG("HAL ADC OPAMP1 init failed!"); - sConfig.Channel = ADC_CHANNEL_TEMPSENSOR_ADC1; + sConfig.Channel = ADC_CHANNEL_3; sConfig.Rank = ADC_REGULAR_RANK_2; + if(HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) + SIMPLEFOC_DEBUG("HAL ADC Vmotor init failed!"); + + sConfig.Channel = ADC_CHANNEL_TEMPSENSOR_ADC1; + sConfig.Rank = ADC_REGULAR_RANK_3; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) SIMPLEFOC_DEBUG("HAL ADC temp init failed!"); } @@ -78,9 +81,8 @@ void MX_ADC2_Init(void) sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5; sConfig.SingleDiff = ADC_SINGLE_ENDED; - sConfig.OffsetNumber = ADC_OFFSET_1; - sConfig.Offset = 0x7FF; - sConfig.OffsetSaturation = ENABLE; + sConfig.OffsetNumber = ADC_OFFSET_NONE; + sConfig.Offset = 0; if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK) SIMPLEFOC_DEBUG("HAL ADC OPAMP2 init failed!"); @@ -90,72 +92,73 @@ void MX_ADC2_Init(void) SIMPLEFOC_DEBUG("HAL ADC OPAMP3 init failed!"); } -void ADC_DMA_Init(ADC_HandleTypeDef* adcHandle) +uint32_t HAL_RCC_ADC12_CLK_ENABLED = 0; + +void ADC_DMA_Init(void) { + RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; + + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12; + PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK; + if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) + SIMPLEFOC_DEBUG("Error initializing peripheral clock in adc.cpp"); + HAL_RCC_ADC12_CLK_ENABLED++; - if(HAL_RCC_ADC12_CLK_ENABLED==1){ + if (HAL_RCC_ADC12_CLK_ENABLED == 1) + { __HAL_RCC_ADC12_CLK_ENABLE(); } + /* ADC1 DMA Init */ + hdma_adc1.Instance = DMA1_Channel1; + hdma_adc1.Init.Request = DMA_REQUEST_ADC1; + hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_adc1.Init.MemInc = DMA_MINC_ENABLE; + hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; + hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; + hdma_adc1.Init.Mode = DMA_CIRCULAR; + hdma_adc1.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_adc1) != HAL_OK) + SIMPLEFOC_DEBUG("HAL error enabling DMA1 channel 1."); + + __HAL_LINKDMA(&hadc1, DMA_Handle, hdma_adc1); + + /* ADC2 DMA Init */ + hdma_adc2.Instance = DMA1_Channel2; + hdma_adc2.Init.Request = DMA_REQUEST_ADC2; + hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_adc2.Init.MemInc = DMA_MINC_ENABLE; + hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; + hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; + hdma_adc2.Init.Mode = DMA_CIRCULAR; + hdma_adc2.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_adc2) != HAL_OK) + SIMPLEFOC_DEBUG("HAL error enabling DMA1 channel 2."); + + __HAL_LINKDMA(&hadc2, DMA_Handle, hdma_adc2); +} + +void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) +{ + if(adcHandle->Instance==ADC1) { - /* ADC1 DMA Init */ - /* ADC1 Init */ - hdma_adc1.Instance = DMA1_Channel1; - hdma_adc1.Init.Request = DMA_REQUEST_ADC1; - hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_adc1.Init.MemInc = DMA_MINC_ENABLE; - hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; - hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; - hdma_adc1.Init.Mode = DMA_CIRCULAR; - hdma_adc1.Init.Priority = DMA_PRIORITY_LOW; - HAL_DMA_DeInit(&hdma_adc1); - if (HAL_DMA_Init(&hdma_adc1) != HAL_OK) - SIMPLEFOC_DEBUG("HAL error enabling DMA1 channel 1."); + HAL_RCC_ADC12_CLK_ENABLED--; + if(HAL_RCC_ADC12_CLK_ENABLED==0){ + __HAL_RCC_ADC12_CLK_DISABLE(); + } - __HAL_LINKDMA(adcHandle,DMA_Handle,hdma_adc1); + HAL_DMA_DeInit(adcHandle->DMA_Handle); } else if(adcHandle->Instance==ADC2) { - /* ADC2 DMA Init */ - /* ADC2 Init */ - hdma_adc2.Instance = DMA1_Channel2; - hdma_adc2.Init.Request = DMA_REQUEST_ADC2; - hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY; - hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE; - hdma_adc2.Init.MemInc = DMA_MINC_ENABLE; - hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; - hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; - hdma_adc2.Init.Mode = DMA_CIRCULAR; - hdma_adc2.Init.Priority = DMA_PRIORITY_LOW; - HAL_DMA_DeInit(&hdma_adc2); - if (HAL_DMA_Init(&hdma_adc2) != HAL_OK) - SIMPLEFOC_DEBUG("HAL error enabling DMA1 channel 2."); + HAL_RCC_ADC12_CLK_ENABLED--; + if(HAL_RCC_ADC12_CLK_ENABLED==0){ + __HAL_RCC_ADC12_CLK_DISABLE(); + } - __HAL_LINKDMA(adcHandle,DMA_Handle,hdma_adc2); + HAL_DMA_DeInit(adcHandle->DMA_Handle); } } - -// void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) -// { - -// if(adcHandle->Instance==ADC1) -// { -// HAL_RCC_ADC12_CLK_ENABLED--; -// if(HAL_RCC_ADC12_CLK_ENABLED==0){ -// __HAL_RCC_ADC12_CLK_DISABLE(); -// } - -// HAL_DMA_DeInit(adcHandle->DMA_Handle); -// } -// else if(adcHandle->Instance==ADC2) -// { -// HAL_RCC_ADC12_CLK_ENABLED--; -// if(HAL_RCC_ADC12_CLK_ENABLED==0){ -// __HAL_RCC_ADC12_CLK_DISABLE(); -// } - -// HAL_DMA_DeInit(adcHandle->DMA_Handle); -// } -// } diff --git a/firmware/lib/currentsense/adc.h b/firmware/lib/currentsense/adc.h index 62491b2..370f503 100644 --- a/firmware/lib/currentsense/adc.h +++ b/firmware/lib/currentsense/adc.h @@ -3,6 +3,7 @@ #include "stm32g4xx_hal.h" #include "stm32g4xx_hal_adc.h" +#include "stm32g4xx_hal_adc_ex.h" #include "communication/SimpleFOCDebug.h" extern ADC_HandleTypeDef hadc1; @@ -12,7 +13,7 @@ extern DMA_HandleTypeDef hdma_adc2; void MX_ADC1_Init(void); void MX_ADC2_Init(void); -void ADC_DMA_Init(ADC_HandleTypeDef* adcHandle); +void ADC_DMA_Init(void); #endif diff --git a/firmware/lib/currentsense/dma.cpp b/firmware/lib/currentsense/dma.cpp index 9832e65..996e762 100644 --- a/firmware/lib/currentsense/dma.cpp +++ b/firmware/lib/currentsense/dma.cpp @@ -4,7 +4,7 @@ void MX_DMA_Init(void) { __HAL_RCC_DMAMUX1_CLK_ENABLE(); __HAL_RCC_DMA1_CLK_ENABLE(); - __HAL_RCC_DMA2_CLK_ENABLE(); + // __HAL_RCC_DMA2_CLK_ENABLE(); HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); diff --git a/firmware/lib/currentsense/opamp.cpp b/firmware/lib/currentsense/opamp.cpp index 4333399..0641c7d 100644 --- a/firmware/lib/currentsense/opamp.cpp +++ b/firmware/lib/currentsense/opamp.cpp @@ -4,83 +4,70 @@ OPAMP_HandleTypeDef hopamp1; OPAMP_HandleTypeDef hopamp2; OPAMP_HandleTypeDef hopamp3; -void initOPAMP(OPAMP_HandleTypeDef *hopamp, OPAMP_TypeDef *opamp) -{ - #ifdef USE_OPAMP_PGA - hopamp->Instance = opamp; - hopamp->Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; - hopamp->Init.Mode = OPAMP_PGA_MODE; - hopamp->Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1; - hopamp->Init.InternalOutput = ENABLE; - hopamp->Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; - hopamp->Init.PgaConnect = OPAMP_PGA_CONNECT_INVERTINGINPUT_NO; - hopamp->Init.PgaGain = OPAMP_PGA_GAIN_16_OR_MINUS_15; // Adjust this to change the gains of the opamp. - hopamp->Init.UserTrimming = OPAMP_TRIMMING_FACTORY; - #else - hopamp->Instance = opamp; - hopamp->Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; - hopamp->Init.Mode = OPAMP_FOLLOWER_MODE; - hopamp->Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1; - hopamp->Init.InternalOutput = ENABLE; - hopamp->Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; - hopamp->Init.UserTrimming = OPAMP_TRIMMING_FACTORY; - #endif - - if (HAL_OPAMP_Init(hopamp) != HAL_OK) - SIMPLEFOC_DEBUG("HAL OPAMP Init failed!"); -} - void configureOPAMPs(void) { - initOPAMP(&hopamp1, OPAMP1); // PA3 - initOPAMP(&hopamp2, OPAMP2); // PB0 - initOPAMP(&hopamp3, OPAMP3); // PA1 + hopamp1.Instance = OPAMP1; + hopamp1.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; + hopamp1.Init.Mode = OPAMP_FOLLOWER_MODE; + hopamp1.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1; + hopamp1.Init.InternalOutput = ENABLE; + hopamp1.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; + hopamp1.Init.UserTrimming = OPAMP_TRIMMING_FACTORY; + if(HAL_OPAMP_Init(&hopamp1) != HAL_OK) + SIMPLEFOC_DEBUG("OPAMP1 init failed."); + + hopamp2.Instance = OPAMP2; + hopamp2.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; + hopamp2.Init.Mode = OPAMP_FOLLOWER_MODE; + hopamp2.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO2; + hopamp2.Init.InternalOutput = ENABLE; + hopamp2.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; + hopamp2.Init.UserTrimming = OPAMP_TRIMMING_FACTORY; + if(HAL_OPAMP_Init(&hopamp2) != HAL_OK) + SIMPLEFOC_DEBUG("OPAMP2 init failed."); + + hopamp3.Instance = OPAMP2; + hopamp3.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; + hopamp3.Init.Mode = OPAMP_FOLLOWER_MODE; + hopamp3.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1; + hopamp3.Init.InternalOutput = ENABLE; + hopamp3.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; + hopamp3.Init.UserTrimming = OPAMP_TRIMMING_FACTORY; + if(HAL_OPAMP_Init(&hopamp3) != HAL_OK) + SIMPLEFOC_DEBUG("OPAMP3 init failed."); } -void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef* opampHandle) +void OPAMP_GPIO_Init(void) { - GPIO_InitTypeDef GPIO_InitStruct = {0}; - if(opampHandle->Instance==OPAMP1) - { - __HAL_RCC_GPIOA_CLK_ENABLE(); - GPIO_InitStruct.Pin = GPIO_PIN_3; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - } - else if(opampHandle->Instance==OPAMP2) - { - __HAL_RCC_GPIOB_CLK_ENABLE(); - GPIO_InitStruct.Pin = GPIO_PIN_0; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - } - else if(opampHandle->Instance==OPAMP3) - { - __HAL_RCC_GPIOB_CLK_ENABLE(); - GPIO_InitStruct.Pin = GPIO_PIN_13; - GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - } + + __HAL_RCC_GPIOA_CLK_ENABLE(); + GPIO_InitStruct.Pin = GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + __HAL_RCC_GPIOB_CLK_ENABLE(); + GPIO_InitStruct.Pin = GPIO_PIN_0; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_13; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } -void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef* opampHandle) +void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *opampHandle) { - if(opampHandle->Instance==OPAMP1) + if (opampHandle->Instance == OPAMP1) { HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3); } - else if(opampHandle->Instance==OPAMP2) + else if (opampHandle->Instance == OPAMP2) { HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0); } - else if(opampHandle->Instance==OPAMP3) + else if (opampHandle->Instance == OPAMP3) { HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13); } } - diff --git a/firmware/lib/currentsense/opamp.h b/firmware/lib/currentsense/opamp.h index 1ed5d22..ae14782 100644 --- a/firmware/lib/currentsense/opamp.h +++ b/firmware/lib/currentsense/opamp.h @@ -12,6 +12,7 @@ extern OPAMP_HandleTypeDef hopamp2; extern OPAMP_HandleTypeDef hopamp3; void configureOPAMPs(void); +void OPAMP_GPIO_Init(void); #endif diff --git a/firmware/lib/currentsense/utils.cpp b/firmware/lib/currentsense/utils.cpp index 68774a1..2a66482 100644 --- a/firmware/lib/currentsense/utils.cpp +++ b/firmware/lib/currentsense/utils.cpp @@ -10,7 +10,7 @@ float adcResolution = 4096.0f; // 12 bit ADC float voltageScale = 3.3f; // full scale voltage range of ADC float adcSens = adcResolution * voltageScale; -volatile uint16_t adc1Result[2] = {0}; +volatile uint16_t adc1Result[3] = {0}; volatile uint16_t adc2Result[2] = {0}; void MX_GPIO_Init(void) @@ -20,8 +20,9 @@ void MX_GPIO_Init(void) __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_ADC12_CLK_ENABLE(); + + OPAMP_GPIO_Init(); } float _readADCVoltageInline(const int pin, const void *cs_params) @@ -30,6 +31,10 @@ float _readADCVoltageInline(const int pin, const void *cs_params) uint32_t rawResult; switch (pin) { + case PA2: + rawResult = adc1Result[1]; + break; + case PA3: rawResult = adc1Result[0]; // ADC1 CH13 -> Vopamp1 internal output break; @@ -38,13 +43,13 @@ float _readADCVoltageInline(const int pin, const void *cs_params) rawResult = adc2Result[0]; // ADC2 CH16 -> Vopamp2 internal output break; - case PA1: - rawResult = adc2Result[1]; // ADC2 CH18 -> Vopamp3 internal output + case PA13: + rawResult = adc2Result[2]; // ADC2 CH18 -> Vopamp3 internal output break; - case PA2: - rawResult = adc1Result[1]; // ADC1 CH16 -> not sure what pin should represent this? - break; + // case PA2: + // rawResult = adc1Result[1]; // ADC1 CH16 -> not sure what pin should represent this? + // break; default: return 0.0f; @@ -65,16 +70,21 @@ void *_configureADCInline(const void *driver_params, const int pinA, const int p _UNUSED(driver_params); HAL_Init(); + HAL_SYSCFG_VREFBUF_VoltageScalingConfig(SYSCFG_VREFBUF_VOLTAGE_SCALE2); + HAL_SYSCFG_EnableVREFBUF(); + HAL_SYSCFG_VREFBUF_HighImpedanceConfig(SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE); MX_GPIO_Init(); MX_DMA_Init(); MX_ADC1_Init(); MX_ADC2_Init(); configureOPAMPs(); - ADC_DMA_Init(&hadc1); - ADC_DMA_Init(&hadc2); + ADC_DMA_Init(); - if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc1Result, 2) != HAL_OK) + HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED); + HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED); + + if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc1Result, 3) != HAL_OK) { SIMPLEFOC_DEBUG("DMA1 read init failed"); } diff --git a/firmware/src/main.cpp b/firmware/src/main.cpp index c7a10fa..4fd684c 100644 --- a/firmware/src/main.cpp +++ b/firmware/src/main.cpp @@ -36,8 +36,8 @@ uint8_t updateData = 0; const uint16_t magicWord = 0xAF0C; // canbus things -extern uint8_t TxData[8]; -extern uint8_t RxData[8]; +extern volatile uint8_t TxData[8]; +extern volatile uint8_t RxData[8]; // simpleFOC things #define POLEPAIRS 50 @@ -68,6 +68,8 @@ StepperMotor motor = StepperMotor(POLEPAIRS); Commander commander = Commander(SERIALPORT); uint16_t counter = 0; +extern volatile uint16_t adc1Result[3]; +extern volatile uint16_t adc2Result[2]; // Prototypes uint8_t configureFOC(void); @@ -149,29 +151,11 @@ void loop() motor.move(); commander.run(); - - - if (counter == 0xFF) - { - PhaseCurrent_s current = currentsense.getPhaseCurrents(); + if(counter == 0){ digitalToggle(LED_GOOD); - SERIALPORT.print(current.a); - SERIALPORT.print("\t"); - SERIALPORT.print(current.b); - SERIALPORT.print("\t"); - SERIALPORT.println(current.c); - // SERIALPORT.print(sensor.getAngle()); - // SERIALPORT.print("\t"); - // SERIALPORT.print(enc.getAngle()); - // SERIALPORT.print("\t"); - // SERIALPORT.println(sensor.getABZResolution()); - - // SERIALPORT.printf("%d\t%d\t%d\n", sensor.getAngle(), sensor.getABZResolution(), enc.getAngle()); - counter = 0; + Serial.println(adc1Result[0]); } - counter++; - #ifdef HAS_MONITOR motor.monitor(); #endif