X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_quadrature.c;h=a5fbd1daaa43e30340a066373a8221cdb6d19b34;hb=refs%2Fheads%2Fmaster;hp=20781c407374b9f5a5d41947ba8ea66774951e4d;hpb=c6e57291d91f1f6c4de5c54a5cfd3eef66d9f830;p=fw%2Faltos diff --git a/src/drivers/ao_quadrature.c b/src/drivers/ao_quadrature.c index 20781c40..b50f1bf5 100644 --- a/src/drivers/ao_quadrature.c +++ b/src/drivers/ao_quadrature.c @@ -73,7 +73,7 @@ ao_quadrature_read(struct stm_gpio *gpio, uint8_t pin_a, uint8_t pin_b, struct a a = ao_debounce(a, &debounce_state[0]); b = ao_debounce(b, &debounce_state[1]); - return a | (b << 1); + return (uint16_t) (a | (b << 1)); } #define _ao_quadrature_get(q) ao_quadrature_read(port(q), bita(q), bitb(q), ao_debounce_state[q]) @@ -130,10 +130,10 @@ static void ao_quadrature_isr(void) { #if AO_QUADRATURE_COUNT > 0 - _ao_quadrature_set(0, _ao_quadrature_get(0)); + _ao_quadrature_set(0, (uint8_t) _ao_quadrature_get(0)); #endif #if AO_QUADRATURE_COUNT > 1 - _ao_quadrature_set(1, _ao_quadrature_get(1)); + _ao_quadrature_set(1, (uint8_t) _ao_quadrature_get(1)); #endif } @@ -163,15 +163,14 @@ ao_quadrature_wait(uint8_t q) static void ao_quadrature_test(void) { - uint8_t q; + uint32_t q; int32_t c; uint8_t s; #ifndef AO_QUADRATURE_SINGLE_CODE int8_t t = 0; #endif - ao_cmd_decimal(); - q = ao_cmd_lex_i; + q = ao_cmd_decimal(); if (q >= AO_QUADRATURE_COUNT) ao_cmd_status = ao_cmd_syntax_error; if (ao_cmd_status != ao_cmd_success) @@ -192,7 +191,7 @@ ao_quadrature_test(void) t = ao_quadrature_step[q]; printf("step %3d ", t); #endif - printf ("count %3d state %2x\n", c, s); + printf ("count %3ld state %2x\n", (long) c, s); flush(); } } @@ -216,7 +215,7 @@ static const struct ao_cmds ao_quadrature_cmds[] = { #define init(q) do { \ ao_enable_input(port(q), bita(q), 0); \ ao_enable_input(port(q), bitb(q), 0); \ - _ao_quadrature_start_one(q, _ao_quadrature_get(q)); \ + _ao_quadrature_start_one(q, (uint8_t) _ao_quadrature_get(q)); \ } while (0) void