Uppfærði kóðann til að virkja Fault takka
This commit is contained in:
+29
-7
@@ -45,6 +45,9 @@ static const struct gpio_dt_spec bin2 =
|
||||
static const struct gpio_dt_spec motor_flt =
|
||||
GPIO_DT_SPEC_GET(DT_ALIAS(motor_flt), gpios);
|
||||
|
||||
static const struct gpio_dt_spec fault_test_button =
|
||||
GPIO_DT_SPEC_GET(DT_ALIAS(fault_test_button), gpios);
|
||||
|
||||
static const struct gpio_dt_spec motor_slp =
|
||||
GPIO_DT_SPEC_GET(DT_ALIAS(motor_slp), gpios);
|
||||
|
||||
@@ -87,12 +90,14 @@ void MotorDriver::begin()
|
||||
if (!pwm_is_ready_dt(&bin1_pwm) ||
|
||||
!gpio_is_ready_dt(&bin2) ||
|
||||
!gpio_is_ready_dt(&motor_flt) ||
|
||||
!gpio_is_ready_dt(&fault_test_button) ||
|
||||
!gpio_is_ready_dt(&motor_slp)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (gpio_pin_configure_dt(&bin2, GPIO_OUTPUT_INACTIVE) < 0 ||
|
||||
gpio_pin_configure_dt(&motor_flt, GPIO_INPUT) < 0 ||
|
||||
gpio_pin_configure_dt(&fault_test_button, GPIO_INPUT) < 0 ||
|
||||
gpio_pin_configure_dt(&motor_slp, GPIO_OUTPUT_INACTIVE) < 0) {
|
||||
return;
|
||||
}
|
||||
@@ -206,16 +211,33 @@ void MotorDriver::set(double pwm)
|
||||
}
|
||||
|
||||
|
||||
// bool MotorDriver::fault_active()
|
||||
// {
|
||||
// //return !(PIND & (1 << PIND4));
|
||||
|
||||
// if (!initialized) {
|
||||
// return true; // Fail safe if the driver did not initialize.
|
||||
// }
|
||||
|
||||
// // The overlay marks FLT as active low. gpio_pin_get_dt() returns
|
||||
// // the logical active state, so 1 means a fault is active.
|
||||
// const int fault = gpio_pin_get_dt(&motor_flt);
|
||||
// return fault < 0 || fault != 0;
|
||||
// }
|
||||
|
||||
bool MotorDriver::fault_active()
|
||||
{
|
||||
//return !(PIND & (1 << PIND4));
|
||||
|
||||
if (!initialized) {
|
||||
return true; // Fail safe if the driver did not initialize.
|
||||
}
|
||||
|
||||
// The overlay marks FLT as active low. gpio_pin_get_dt() returns
|
||||
// the logical active state, so 1 means a fault is active.
|
||||
const int fault = gpio_pin_get_dt(&motor_flt);
|
||||
return fault < 0 || fault != 0;
|
||||
}
|
||||
const int driver_fault = gpio_pin_get_dt(&motor_flt);
|
||||
const int button_fault = gpio_pin_get_dt(&fault_test_button);
|
||||
|
||||
// Negative values indicate a GPIO read error, so treat them as a fault.
|
||||
// With GPIO_ACTIVE_LOW, a pressed button reads as logical 1.
|
||||
return driver_fault < 0 ||
|
||||
button_fault < 0 ||
|
||||
driver_fault != 0 ||
|
||||
button_fault != 0;
|
||||
}
|
||||
Reference in New Issue
Block a user