Make sin/cos encoder pins configurable.

This commit is contained in:
Unknown
2020-04-09 18:53:53 -04:00
parent 19ac132f51
commit e6f95d4d47
2 changed files with 7 additions and 3 deletions
+2 -2
View File
@@ -304,8 +304,8 @@ void Encoder::sample_now() {
} break;
case MODE_SINCOS: {
sincos_sample_s_ = (get_adc_voltage(GPIO_3_GPIO_Port, GPIO_3_Pin) / 3.3f) - 0.5f;
sincos_sample_c_ = (get_adc_voltage(GPIO_4_GPIO_Port, GPIO_4_Pin) / 3.3f) - 0.5f;
sincos_sample_s_ = (get_adc_voltage(get_gpio_port_by_pin(config_.sincos_gpio_pin_sin), get_gpio_pin_by_pin(config_.sincos_gpio_pin_sin)) / 3.3f) - 0.5f;
sincos_sample_c_ = (get_adc_voltage(get_gpio_port_by_pin(config_.sincos_gpio_pin_cos), get_gpio_pin_by_pin(config_.sincos_gpio_pin_cos)) / 3.3f) - 0.5f;
} break;
case MODE_SPI_ABS_AMS:
+5 -1
View File
@@ -51,6 +51,8 @@ public:
bool idx_search_unidirectional = false; // Only allow index search in known direction
bool ignore_illegal_hall_state = false; // dont error on bad states like 000 or 111
uint16_t abs_spi_cs_gpio_pin = 1;
uint16_t sincos_gpio_pin_sin = 3;
uint16_t sincos_gpio_pin_cos = 4;
};
Encoder(const EncoderHardwareConfig_t& hw_config,
@@ -161,7 +163,9 @@ public:
make_protocol_property("calib_scan_distance", &config_.calib_scan_distance),
make_protocol_property("calib_scan_omega", &config_.calib_scan_omega),
make_protocol_property("idx_search_unidirectional", &config_.idx_search_unidirectional),
make_protocol_property("ignore_illegal_hall_state", &config_.ignore_illegal_hall_state)
make_protocol_property("ignore_illegal_hall_state", &config_.ignore_illegal_hall_state),
make_protocol_property("sincos_gpio_pin_sin", &config_.sincos_gpio_pin_sin),
make_protocol_property("sincos_gpio_pin_cos", &config_.sincos_gpio_pin_cos)
),
make_protocol_function("set_linear_count", *this, &Encoder::set_linear_count, "count")
);