@@ -37,7 +37,7 @@ bool BraccioClass::begin(voidFuncPtr customMenu) {
37
37
38
38
SPI.begin ();
39
39
40
- pd_mutex .lock ();
40
+ i2c_mutex .lock ();
41
41
bl.begin ();
42
42
if (bl.getChipID () != 0xCE ) {
43
43
return false ;
@@ -65,7 +65,7 @@ bool BraccioClass::begin(voidFuncPtr customMenu) {
65
65
expander.setPinDirection (18 , 0 ); // P22 = 8 * 2 + 2
66
66
expander.writePin (18 , 0 ); // reset LCD
67
67
expander.writePin (18 , 1 ); // LCD out of reset
68
- pd_mutex .unlock ();
68
+ i2c_mutex .unlock ();
69
69
70
70
pinMode (BTN_LEFT, INPUT_PULLUP);
71
71
pinMode (BTN_RIGHT, INPUT_PULLUP);
@@ -120,11 +120,11 @@ bool BraccioClass::begin(voidFuncPtr customMenu) {
120
120
121
121
PD_UFP.print_status (Serial);
122
122
while (!PD_UFP.is_PPS_ready ()) {
123
- pd_mutex .lock ();
123
+ i2c_mutex .lock ();
124
124
PD_UFP.print_status (Serial);
125
125
// PD_UFP.print_status(Serial);
126
126
PD_UFP.init_PPS (PPS_V (7.2 ), PPS_A (2.0 ));
127
- pd_mutex .unlock ();
127
+ i2c_mutex .unlock ();
128
128
}
129
129
130
130
#ifdef __MBED__
@@ -158,9 +158,9 @@ void BraccioClass::pd_thread() {
158
158
pd_timer.detach ();
159
159
pd_timer.attach (mbed::callback (this , &BraccioClass::unlock_pd_semaphore), 0 .05f );
160
160
}
161
- pd_mutex .lock ();
161
+ i2c_mutex .lock ();
162
162
PD_UFP.run ();
163
- pd_mutex .unlock ();
163
+ i2c_mutex .unlock ();
164
164
if (PD_UFP.is_power_ready () && PD_UFP.is_PPS_ready ()) {
165
165
166
166
}
@@ -201,18 +201,20 @@ void BraccioClass::defaultMenu() {
201
201
202
202
void BraccioClass::motors_connected_thread () {
203
203
while (1 ) {
204
- for (int i = 1 ; i < 7 ; i++) {
205
- _connected[i] = (servos->ping (i) == 0 );
206
- // Serial.print(String(i) + ": ");
207
- // Serial.println(_connected[i]);
208
- pd_mutex.lock ();
209
- if (_connected[i]) {
210
- setGreen (i);
211
- } else {
212
- setRed (i);
213
- }
214
- pd_mutex.unlock ();
215
- }
204
+ if (ping_allowed) {
205
+ for (int i = 1 ; i < 7 ; i++) {
206
+ _connected[i] = (servos->ping (i) == 0 );
207
+ // Serial.print(String(i) + ": ");
208
+ // Serial.println(_connected[i]);
209
+ i2c_mutex.lock ();
210
+ if (_connected[i]) {
211
+ setGreen (i);
212
+ } else {
213
+ setRed (i);
214
+ }
215
+ i2c_mutex.unlock ();
216
+ }
217
+ }
216
218
delay (1000 );
217
219
}
218
220
}
0 commit comments