diff options
| author | Keith Packard <keithp@keithp.com> | 2011-09-21 11:39:24 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-09-21 11:45:05 -0700 | 
| commit | c8a00bb9ccdf0d4257f037c2bf996ce5e6b0b0c0 (patch) | |
| tree | cef91c9361b9455078ee4393281333c0ae6af784 /src | |
| parent | abf17522c206b465375b73a004a6d67bfa714ba3 (diff) | |
altos: Pre-compute RDF packet len at compile time
Instead of computing the RDF packet len at run time, which takes a
pile of code space.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cc1111/ao_radio.c | 14 | ||||
| -rw-r--r-- | src/core/ao.h | 12 | ||||
| -rw-r--r-- | src/core/ao_telemetry.c | 2 | 
3 files changed, 13 insertions, 15 deletions
| diff --git a/src/cc1111/ao_radio.c b/src/cc1111/ao_radio.c index 00816b33..75f241d4 100644 --- a/src/cc1111/ao_radio.c +++ b/src/cc1111/ao_radio.c @@ -367,21 +367,9 @@ ao_radio_recv_abort(void)  __xdata ao_radio_rdf_value = 0x55;  void -ao_radio_rdf(int ms) +ao_radio_rdf(uint8_t pkt_len)  {  	uint8_t i; -	uint8_t pkt_len; - -	/* -	 * Compute the packet length as follows: -	 * -	 * 2000 bps (for a 1kHz tone) -	 * so, for 'ms' milliseconds, we need -	 * 2 * ms bits, or ms / 4 bytes -	 */ -	if (ms > (255 * 4)) -		ms = 255 * 4; -	pkt_len = ms >> 2;  	ao_radio_abort = 0;  	ao_radio_get(pkt_len); diff --git a/src/core/ao.h b/src/core/ao.h index 1d5769cb..c28c4549 100644 --- a/src/core/ao.h +++ b/src/core/ao.h @@ -1341,8 +1341,18 @@ ao_radio_recv(__xdata void *data, uint8_t size) __reentrant;  void  ao_radio_recv_abort(void); +/* + * Compute the packet length as follows: + * + * 2000 bps (for a 1kHz tone) + * so, for 'ms' milliseconds, we need + * 2 * ms bits, or ms / 4 bytes + */ + +#define AO_MS_TO_RDF_LEN(ms) ((ms) > 255 * 4 ? 255 : ((ms) >> 2)) +  void -ao_radio_rdf(int ms); +ao_radio_rdf(uint8_t pkt_len);  void  ao_radio_rdf_abort(void); diff --git a/src/core/ao_telemetry.c b/src/core/ao_telemetry.c index de669ce1..c2707e7d 100644 --- a/src/core/ao_telemetry.c +++ b/src/core/ao_telemetry.c @@ -235,7 +235,7 @@ ao_telemetry(void)  			    (int16_t) (ao_time() - ao_rdf_time) >= 0)  			{  				ao_rdf_time = ao_time() + AO_RDF_INTERVAL_TICKS; -				ao_radio_rdf(AO_RDF_LENGTH_MS); +				ao_radio_rdf(AO_MS_TO_RDF_LEN(AO_RDF_LENGTH_MS));  			}  #endif  			time += ao_telemetry_interval; | 
