diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ao.h | 10 | ||||
| -rw-r--r-- | src/ao_radio.c | 58 | 
2 files changed, 13 insertions, 55 deletions
| @@ -922,13 +922,13 @@ ao_radio_get(void);  #define ao_radio_put() ao_mutex_put(&ao_radio_mutex)  void -ao_radio_set_telemetry(void); +ao_radio_set_fixed_pkt(size_t size); -void -ao_radio_set_packet(void); +#define ao_radio_set_telemetry() \ +        ao_radio_set_fixed_pkt(sizeof (struct ao_telemetry)) -void -ao_radio_set_rdf(void); +#define ao_radio_set_packet() \ +        ao_radio_set_fixed_pkt(sizeof (struct ao_packet))  void  ao_radio_send(__xdata void *data, uint8_t size) __reentrant; diff --git a/src/ao_radio.c b/src/ao_radio.c index 7b7c5161..d156f543 100644 --- a/src/ao_radio.c +++ b/src/ao_radio.c @@ -217,7 +217,7 @@ static __code uint8_t rdf_setup[] = {  				 RF_PKTCTRL0_LENGTH_CONFIG_FIXED),  }; -static __code uint8_t telemetry_setup[] = { +static __code uint8_t fixed_pkt_setup[] = {  	RF_MDMCFG4_OFF,		((CHANBW_E << RF_MDMCFG4_CHANBW_E_SHIFT) |  				 (CHANBW_M << RF_MDMCFG4_CHANBW_M_SHIFT) |  				 (DRATE_E << RF_MDMCFG4_DRATE_E_SHIFT)), @@ -232,34 +232,8 @@ static __code uint8_t telemetry_setup[] = {  	RF_DEVIATN_OFF,		((DEVIATION_E << RF_DEVIATN_DEVIATION_E_SHIFT) |  				 (DEVIATION_M << RF_DEVIATN_DEVIATION_M_SHIFT)), -	/* max packet length */ -	RF_PKTLEN_OFF,		sizeof (struct ao_telemetry), -	RF_PKTCTRL1_OFF,	((1 << PKTCTRL1_PQT_SHIFT)| -				 PKTCTRL1_APPEND_STATUS| -				 PKTCTRL1_ADR_CHK_NONE), -	RF_PKTCTRL0_OFF,	(RF_PKTCTRL0_WHITE_DATA| -				 RF_PKTCTRL0_PKT_FORMAT_NORMAL| -				 RF_PKTCTRL0_CRC_EN| -				 RF_PKTCTRL0_LENGTH_CONFIG_FIXED), -}; - -static __code uint8_t packet_setup[] = { -	RF_MDMCFG4_OFF,		((CHANBW_E << RF_MDMCFG4_CHANBW_E_SHIFT) | -				 (CHANBW_M << RF_MDMCFG4_CHANBW_M_SHIFT) | -				 (DRATE_E << RF_MDMCFG4_DRATE_E_SHIFT)), -	RF_MDMCFG3_OFF,		(DRATE_M << RF_MDMCFG3_DRATE_M_SHIFT), -	RF_MDMCFG2_OFF,		(RF_MDMCFG2_DEM_DCFILT_OFF | -				 RF_MDMCFG2_MOD_FORMAT_GFSK | -				 RF_MDMCFG2_SYNC_MODE_15_16_THRES), -	RF_MDMCFG1_OFF,		(RF_MDMCFG1_FEC_EN | -				 RF_MDMCFG1_NUM_PREAMBLE_4 | -				 (2 << RF_MDMCFG1_CHANSPC_E_SHIFT)), - -	RF_DEVIATN_OFF,		((DEVIATION_E << RF_DEVIATN_DEVIATION_E_SHIFT) | -				 (DEVIATION_M << RF_DEVIATN_DEVIATION_M_SHIFT)), - -	/* max packet length */ -	RF_PKTLEN_OFF,		sizeof (struct ao_packet), +	/* max packet length -- now set inline */ +	// RF_PKTLEN_OFF,		sizeof (struct ao_telemetry),  	RF_PKTCTRL1_OFF,	((1 << PKTCTRL1_PQT_SHIFT)|  				 PKTCTRL1_APPEND_STATUS|  				 PKTCTRL1_ADR_CHK_NONE), @@ -290,27 +264,12 @@ ao_radio_general_isr(void) __interrupt 16  }  void -ao_radio_set_telemetry(void) +ao_radio_set_fixed_pkt(size_t size)  {  	uint8_t	i; -	for (i = 0; i < sizeof (telemetry_setup); i += 2) -		RF[telemetry_setup[i]] = telemetry_setup[i+1]; -} - -void -ao_radio_set_packet(void) -{ -	uint8_t	i; -	for (i = 0; i < sizeof (packet_setup); i += 2) -		RF[packet_setup[i]] = packet_setup[i+1]; -} - -void -ao_radio_set_rdf(void) -{ -	uint8_t	i; -	for (i = 0; i < sizeof (rdf_setup); i += 2) -		RF[rdf_setup[i]] = rdf_setup[i+1]; +	for (i = 0; i < sizeof (fixed_pkt_setup); i += 2) +		RF[fixed_pkt_setup[i]] = fixed_pkt_setup[i+1]; +	RF[RF_PKTLEN_OFF] = size;  }  void @@ -452,8 +411,7 @@ ao_radio_rdf(int ms)  		ao_dma_abort(ao_radio_dma);  		ao_radio_idle();  	} -	for (i = 0; i < sizeof (telemetry_setup); i += 2) -		RF[telemetry_setup[i]] = telemetry_setup[i+1]; +	ao_radio_set_telemetry();  	ao_radio_put();  } | 
