X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_quadrature.c;h=b50f1bf5c90b4c1e52f0ac73a77ca55a47b26203;hb=c49bd3cb0c31a51fae79ddc92237cc309be9a242;hp=250e035fc3171f167c438da9ef92ba35e8668cd5;hpb=323a79e6ed3dfdd2afadfc2a464bb0610380b03b;p=fw%2Faltos diff --git a/src/drivers/ao_quadrature.c b/src/drivers/ao_quadrature.c index 250e035f..b50f1bf5 100644 --- a/src/drivers/ao_quadrature.c +++ b/src/drivers/ao_quadrature.c @@ -22,7 +22,7 @@ #include #include -__xdata int32_t ao_quadrature_count[AO_QUADRATURE_COUNT]; +int32_t ao_quadrature_count[AO_QUADRATURE_COUNT]; #ifndef AO_QUADRATURE_SINGLE_CODE static int8_t ao_quadrature_step[AO_QUADRATURE_COUNT]; #endif @@ -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