projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: embed ao_alarm and ao_clear_alarm in ao_sleep_for
[fw/altos]
/
src
/
kernel
/
ao.h
diff --git
a/src/kernel/ao.h
b/src/kernel/ao.h
index b8189e4356b76cee04e0cbbbcd67bf11930e9a53..59a469ae4fc41742f779da7628b2d372b30b9bb3 100644
(file)
--- a/
src/kernel/ao.h
+++ b/
src/kernel/ao.h
@@
-43,10
+43,6
@@
#define HAS_TASK 1
#endif
#define HAS_TASK 1
#endif
-#ifndef AO_PORT_TYPE
-#define AO_PORT_TYPE uint8_t
-#endif
-
typedef AO_PORT_TYPE ao_port_t;
#if HAS_TASK
typedef AO_PORT_TYPE ao_port_t;
#if HAS_TASK
@@
-76,6
+72,7
@@
typedef AO_PORT_TYPE ao_port_t;
#define AO_PANIC_BUFIO 15 /* Mis-using bufio API */
#define AO_PANIC_EXTI 16 /* Mis-using exti API */
#define AO_PANIC_FAST_TIMER 17 /* Mis-using fast timer API */
#define AO_PANIC_BUFIO 15 /* Mis-using bufio API */
#define AO_PANIC_EXTI 16 /* Mis-using exti API */
#define AO_PANIC_FAST_TIMER 17 /* Mis-using fast timer API */
+#define AO_PANIC_ADC 18 /* Mis-using ADC interface */
#define AO_PANIC_SELF_TEST_CC1120 0x40 | 1 /* Self test failure */
#define AO_PANIC_SELF_TEST_HMC5883 0x40 | 2 /* Self test failure */
#define AO_PANIC_SELF_TEST_MPU6000 0x40 | 3 /* Self test failure */
#define AO_PANIC_SELF_TEST_CC1120 0x40 | 1 /* Self test failure */
#define AO_PANIC_SELF_TEST_HMC5883 0x40 | 2 /* Self test failure */
#define AO_PANIC_SELF_TEST_MPU6000 0x40 | 3 /* Self test failure */
@@
-132,6
+129,9
@@
ao_clock_init(void);
*/
#ifndef ao_mutex_get
*/
#ifndef ao_mutex_get
+uint8_t
+ao_mutex_try(__xdata uint8_t *ao_mutex, uint8_t task_id) __reentrant;
+
void
ao_mutex_get(__xdata uint8_t *ao_mutex) __reentrant;
void
ao_mutex_get(__xdata uint8_t *ao_mutex) __reentrant;
@@
-275,15
+275,17
@@
ao_report_init(void);
* Given raw data, convert to SI units
*/
* Given raw data, convert to SI units
*/
+#if HAS_BARO
/* pressure from the sensor to altitude in meters */
/* pressure from the sensor to altitude in meters */
-
int16
_t
-ao_pres_to_altitude(
int16
_t pres) __reentrant;
+
alt
_t
+ao_pres_to_altitude(
pres
_t pres) __reentrant;
-
int16
_t
-ao_altitude_to_pres(
int16
_t alt) __reentrant;
+
pres
_t
+ao_altitude_to_pres(
alt
_t alt) __reentrant;
int16_t
ao_temp_to_dC(int16_t temp) __reentrant;
int16_t
ao_temp_to_dC(int16_t temp) __reentrant;
+#endif
/*
* ao_convert_pa.c
/*
* ao_convert_pa.c
@@
-293,11
+295,13
@@
ao_temp_to_dC(int16_t temp) __reentrant;
#include <ao_data.h>
#include <ao_data.h>
+#if HAS_BARO
alt_t
alt_t
-ao_pa_to_altitude(
int32
_t pa);
+ao_pa_to_altitude(
pres
_t pa);
int32_t
ao_altitude_to_pa(alt_t alt);
int32_t
ao_altitude_to_pa(alt_t alt);
+#endif
#if HAS_DBG
#include <ao_dbg.h>
#if HAS_DBG
#include <ao_dbg.h>
@@
-511,15
+515,12
@@
struct ao_telemetry_raw_recv {
/* Set delay between telemetry reports (0 to disable) */
/* Set delay between telemetry reports (0 to disable) */
-#ifdef AO_SEND_ALL_BARO
-#define AO_TELEMETRY_INTERVAL_PAD AO_MS_TO_TICKS(100)
-#define AO_TELEMETRY_INTERVAL_FLIGHT AO_MS_TO_TICKS(100)
-#define AO_TELEMETRY_INTERVAL_RECOVER AO_MS_TO_TICKS(100)
-#else
#define AO_TELEMETRY_INTERVAL_PAD AO_MS_TO_TICKS(1000)
#define AO_TELEMETRY_INTERVAL_FLIGHT AO_MS_TO_TICKS(100)
#define AO_TELEMETRY_INTERVAL_RECOVER AO_MS_TO_TICKS(1000)
#define AO_TELEMETRY_INTERVAL_PAD AO_MS_TO_TICKS(1000)
#define AO_TELEMETRY_INTERVAL_FLIGHT AO_MS_TO_TICKS(100)
#define AO_TELEMETRY_INTERVAL_RECOVER AO_MS_TO_TICKS(1000)
-#endif
+
+void
+ao_telemetry_reset_interval(void);
void
ao_telemetry_set_interval(uint16_t interval);
void
ao_telemetry_set_interval(uint16_t interval);
@@
-558,6
+559,15
@@
extern __xdata int8_t ao_radio_rssi;
#define HAS_RADIO_XMIT HAS_RADIO
#endif
#define HAS_RADIO_XMIT HAS_RADIO
#endif
+#define AO_RADIO_RATE_38400 0
+#define AO_RADIO_RATE_9600 1
+#define AO_RADIO_RATE_2400 2
+#define AO_RADIO_RATE_MAX AO_RADIO_RATE_2400
+
+#if defined(HAS_RADIO) && !defined(HAS_RADIO_RATE)
+#define HAS_RADIO_RATE HAS_RADIO
+#endif
+
void
ao_radio_general_isr(void) ao_arch_interrupt(16);
void
ao_radio_general_isr(void) ao_arch_interrupt(16);
@@
-643,6
+653,7
@@
union ao_monitor {
extern __xdata union ao_monitor ao_monitor_ring[AO_MONITOR_RING];
#define ao_monitor_ring_next(n) (((n) + 1) & (AO_MONITOR_RING - 1))
extern __xdata union ao_monitor ao_monitor_ring[AO_MONITOR_RING];
#define ao_monitor_ring_next(n) (((n) + 1) & (AO_MONITOR_RING - 1))
+#define ao_monitor_ring_prev(n) (((n) - 1) & (AO_MONITOR_RING - 1))
extern __data uint8_t ao_monitoring;
extern __data uint8_t ao_monitor_head;
extern __data uint8_t ao_monitoring;
extern __data uint8_t ao_monitor_head;
@@
-757,11
+768,13
@@
extern __xdata uint8_t ao_force_freq;
* ao_rssi.c
*/
* ao_rssi.c
*/
+#ifdef AO_LED_TYPE
void
void
-ao_rssi_set(int rssi_value);
+ao_rssi_set(int
16_t
rssi_value);
void
ao_rssi_init(AO_LED_TYPE rssi_led);
void
ao_rssi_init(AO_LED_TYPE rssi_led);
+#endif
/*
* ao_product.c
/*
* ao_product.c