Skip to content

Commit 5ef4d9d

Browse files
committed
add some checks to current-sense init
1 parent 7677c85 commit 5ef4d9d

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

src/current_sense/GenericCurrentSense.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ int GenericCurrentSense::driverAlign(float voltage){
6262
int exit_flag = 1;
6363
if(skip_align) return exit_flag;
6464

65+
if (!initialized) return 0;
66+
6567
// // set phase A active and phases B and C down
6668
// driver->setPwm(voltage, 0, 0);
6769
// _delay(200);

src/current_sense/InlineCurrentSense.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "InlineCurrentSense.h"
2+
#include "communication/SimpleFOCDebug.h"
23
// InlineCurrentSensor constructor
34
// - shunt_resistor - shunt resistor value
45
// - gain - current-sense op-amp gain
@@ -93,6 +94,13 @@ int InlineCurrentSense::driverAlign(float voltage){
9394
int exit_flag = 1;
9495
if(skip_align) return exit_flag;
9596

97+
if (driver==nullptr) {
98+
SIMPLEFOC_DEBUG("CUR: No driver linked!");
99+
return 0;
100+
}
101+
102+
if (!initialized) return 0;
103+
96104
if(_isset(pinA)){
97105
// set phase A active and phases B and C down
98106
driver->setPwm(voltage, 0, 0);

src/current_sense/LowsideCurrentSense.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "LowsideCurrentSense.h"
2+
#include "communication/SimpleFOCDebug.h"
23
// LowsideCurrentSensor constructor
34
// - shunt_resistor - shunt resistor value
45
// - gain - current-sense op-amp gain
@@ -35,6 +36,12 @@ LowsideCurrentSense::LowsideCurrentSense(float _mVpA, int _pinA, int _pinB, int
3536

3637
// Lowside sensor init function
3738
int LowsideCurrentSense::init(){
39+
40+
if (driver==nullptr) {
41+
SIMPLEFOC_DEBUG("CUR: Driver not linked!");
42+
return 0;
43+
}
44+
3845
// configure ADC variables
3946
params = _configureADCLowSide(driver->params,pinA,pinB,pinC);
4047
// if init failed return fail
@@ -89,10 +96,12 @@ PhaseCurrent_s LowsideCurrentSense::getPhaseCurrents(){
8996
// 3 - success but gains inverted
9097
// 4 - success but pins reconfigured and gains inverted
9198
int LowsideCurrentSense::driverAlign(float voltage){
92-
99+
93100
int exit_flag = 1;
94101
if(skip_align) return exit_flag;
95102

103+
if (!initialized) return 0;
104+
96105
if(_isset(pinA)){
97106
// set phase A active and phases B and C down
98107
driver->setPwm(voltage, 0, 0);

0 commit comments

Comments
 (0)