altosui: Add config and pyro tabs to graph widget
[fw/altos] / src / drivers / ao_companion.c
index 598b5815570bc4ded79d5ce219aed1ef5abb0951..bda7805f30219c8cbd57bf22299e2c26bfa82b1f 100644 (file)
 #error HAS_COMPANION not set in ao_companion.c
 #endif
 
+#define AO_COMPANION_SPI_SPEED ao_spi_speed(AO_COMPANION_SPI_BUS, 200000)
+
 #define COMPANION_SELECT()     do {                    \
                ao_spi_get_bit(AO_COMPANION_CS_PORT,    \
                               AO_COMPANION_CS_PIN,     \
-                              AO_COMPANION_CS,         \
                               AO_COMPANION_SPI_BUS,    \
-                              AO_SPI_SPEED_200kHz);    \
+                              AO_COMPANION_SPI_SPEED); \
        } while (0)
 
 #define COMPANION_DESELECT()   do {                    \
                ao_spi_put_bit(AO_COMPANION_CS_PORT,    \
                               AO_COMPANION_CS_PIN,     \
-                              AO_COMPANION_CS,         \
                               AO_COMPANION_SPI_BUS);   \
        } while (0)
 
-__xdata struct ao_companion_command            ao_companion_command;
-__xdata struct ao_companion_setup              ao_companion_setup;
+struct ao_companion_command            ao_companion_command;
+struct ao_companion_setup              ao_companion_setup;
 
-__xdata uint16_t       ao_companion_data[AO_COMPANION_MAX_CHANNELS];
-__pdata uint8_t                ao_companion_running;
-__xdata uint8_t                ao_companion_mutex;
+uint16_t       ao_companion_data[AO_COMPANION_MAX_CHANNELS];
+uint8_t                ao_companion_running;
+uint8_t                ao_companion_mutex;
 
 static void
 ao_companion_send_command(uint8_t command)
 {
        ao_companion_command.command = command;
        ao_companion_command.flight_state = ao_flight_state;
-       ao_companion_command.tick = ao_time();
+       ao_companion_command.tick = (uint16_t) ao_time();
        ao_companion_command.serial = ao_serial_number;
        ao_companion_command.flight = ao_flight_number;
-       ao_companion_command.accel = ao_accel;
-       ao_companion_command.speed = ao_speed;
-       ao_companion_command.height = ao_height;
+       ao_companion_command.accel = (int16_t) ao_accel;
+       ao_companion_command.speed = (int16_t) ao_speed;
+       ao_companion_command.height = (int16_t) ao_height;
        ao_companion_command.motor_number = ao_motor_number;
        ao_spi_send(&ao_companion_command, sizeof (ao_companion_command), AO_COMPANION_SPI_BUS);
 }
@@ -95,7 +95,7 @@ ao_companion_notify(void)
        COMPANION_DESELECT();
 }
 
-void
+static void
 ao_companion(void)
 {
        uint8_t i;
@@ -115,8 +115,8 @@ ao_companion(void)
        ao_exit();
 }
 
-void
-ao_companion_status(void) __reentrant
+static void
+ao_companion_status(void) 
 {
        uint8_t i;
        printf("Companion running: %d\n", ao_companion_running);
@@ -134,17 +134,17 @@ ao_companion_status(void) __reentrant
        printf("\n");
 }
 
-__code struct ao_cmds ao_companion_cmds[] = {
+const struct ao_cmds ao_companion_cmds[] = {
        { ao_companion_status,  "L\0Companion link status" },
        { 0, NULL },
 };
 
-static __xdata struct ao_task ao_companion_task;
+static struct ao_task ao_companion_task;
 
 void
 ao_companion_init(void)
 {
-       ao_enable_output(AO_COMPANION_CS_PORT, AO_COMPANION_CS_PIN, AO_COMPANION_CS, 1);
+       ao_enable_output(AO_COMPANION_CS_PORT, AO_COMPANION_CS_PIN, 1);
        ao_cmd_register(&ao_companion_cmds[0]);
        ao_add_task(&ao_companion_task, ao_companion, "companion");
 }