diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/ao_telemetry.c | 21 | ||||
| -rw-r--r-- | src/drivers/ao_aprs.h | 2 | ||||
| -rw-r--r-- | src/megametrum-v0.1/ao_pins.h | 1 | 
3 files changed, 23 insertions, 1 deletions
| diff --git a/src/core/ao_telemetry.c b/src/core/ao_telemetry.c index 52ac9489..79d1bb81 100644 --- a/src/core/ao_telemetry.c +++ b/src/core/ao_telemetry.c @@ -22,6 +22,12 @@ static __pdata uint16_t ao_telemetry_interval;  static __pdata uint8_t ao_rdf = 0;  static __pdata uint16_t ao_rdf_time; +#if HAS_APRS +static __pdata uint16_t ao_aprs_time; + +#include <ao_aprs.h> +#endif +  #if defined(MEGAMETRUM)  #define AO_SEND_MEGA	1  #endif @@ -288,6 +294,9 @@ ao_telemetry(void)  		while (ao_telemetry_interval == 0)  			ao_sleep(&telemetry);  		time = ao_rdf_time = ao_time(); +#if HAS_APRS +		ao_aprs_time = time; +#endif  		while (ao_telemetry_interval) { @@ -325,6 +334,12 @@ ao_telemetry(void)  #endif  					ao_radio_rdf();  			} +#if HAS_APRS +			if (ao_rdf && (int16_t) (ao_time() - ao_aprs_time) >= 0) { +				ao_aprs_time = ao_time() + AO_APRS_INTERVAL_TICKS; +				ao_aprs_send(); +			} +#endif  #endif  			time += ao_telemetry_interval;  			delay = time - ao_time(); @@ -389,8 +404,12 @@ ao_rdf_set(uint8_t rdf)  	ao_rdf = rdf;  	if (rdf == 0)  		ao_radio_rdf_abort(); -	else +	else {  		ao_rdf_time = ao_time() + AO_RDF_INTERVAL_TICKS; +#if HAS_APRS +		ao_aprs_time = ao_time() + AO_APRS_INTERVAL_TICKS; +#endif +	}  }  __xdata struct ao_task	ao_telemetry_task; diff --git a/src/drivers/ao_aprs.h b/src/drivers/ao_aprs.h index a033fa0b..e00dd75b 100644 --- a/src/drivers/ao_aprs.h +++ b/src/drivers/ao_aprs.h @@ -18,6 +18,8 @@  #ifndef _AO_APRS_H_  #define _AO_APRS_H_ +#define AO_APRS_INTERVAL_TICKS	AO_SEC_TO_TICKS(2) +  void  ao_aprs_send(void); diff --git a/src/megametrum-v0.1/ao_pins.h b/src/megametrum-v0.1/ao_pins.h index f07dc26e..083c1b6f 100644 --- a/src/megametrum-v0.1/ao_pins.h +++ b/src/megametrum-v0.1/ao_pins.h @@ -70,6 +70,7 @@  #define HAS_BEEP		1  #define HAS_RADIO		1  #define HAS_TELEMETRY		1 +#define HAS_APRS		1  #define HAS_SPI_1		1  #define SPI_1_PA5_PA6_PA7	1	/* Barometer */ | 
