Fix float -> double conversion

This commit is contained in:
Unknown
2018-09-21 18:55:53 -04:00
parent 8b7ac1bab2
commit d169129434
2 changed files with 4 additions and 5 deletions
+3 -4
View File
@@ -1,5 +1,4 @@
#include <odrive_main.h>
#include <algorithm>
Endstop::Endstop(EndstopConfig_t &config)
: config_(config) {
@@ -12,9 +11,9 @@ static void endstop_cb_wrapper(void* ctx){
void Endstop::update() {
if (config_.enabled) {
float now = axis_->loop_counter_ * current_meas_period;
if ((now - debounce_timer_) >= (config_.debounce_ms * 0.001)) { // Debounce timer expired, take the new pin state
endstop_state_ = config_.is_active_high ? pin_state_ : !pin_state_; // endstop_state is the logical state
debounce_timer_ = now - (config_.debounce_ms * 0.001); // Ensure timer doesn't have overflow issues
if ((now - debounce_timer_) >= (config_.debounce_ms * 0.001f)) { // Debounce timer expired, take the new pin state
endstop_state_ = config_.is_active_high ? pin_state_ : !pin_state_; // endstop_state is the logical state
debounce_timer_ = now - (config_.debounce_ms * 0.001f); // Ensure timer doesn't have overflow issues
} else {
endstop_state_ = endstop_state_; // Do nothing
}
+1 -1
View File
@@ -7,7 +7,7 @@ struct EndstopConfig_t {
bool enabled = false;
int32_t offset = 0;
bool is_active_high = false;
float debounce_ms = 100;
float debounce_ms = 100.0f;
};
class Endstop {