diff options
| author | Keith Packard <keithp@keithp.com> | 2011-07-09 16:59:16 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-08-13 18:46:12 -0700 | 
| commit | 30abbdc7ffcfc809b4a3fc31486fe968161ea225 (patch) | |
| tree | 5f7735943d8bc54e5f6a478e168aebc054b215d6 /src/ao_spi.c | |
| parent | 578c4b17b8f62f2727654ebda78ee139f9fe13fa (diff) | |
altos: Add SPI-based companion board support
This sends current flight state information and retrieves companion
data to include in telemetry.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/ao_spi.c')
| -rw-r--r-- | src/ao_spi.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/src/ao_spi.c b/src/ao_spi.c index bd52a0d4..fbe613c7 100644 --- a/src/ao_spi.c +++ b/src/ao_spi.c @@ -17,6 +17,10 @@  #include "ao.h" +/* Shared mutex to protect SPI bus, must cover the entire + * operation, from CS low to CS high. This means that any SPI + * user must protect the SPI bus with this mutex + */  __xdata uint8_t	ao_spi_mutex;  __xdata uint8_t ao_spi_dma_in_done;  __xdata uint8_t ao_spi_dma_out_done; @@ -36,7 +40,6 @@ static __xdata uint8_t ao_spi_const = 0xff;  void  ao_spi_send(void __xdata *block, uint16_t len) __reentrant  { -	ao_mutex_get(&ao_spi_mutex);  	ao_dma_set_transfer(ao_spi_dma_in_id,  			    &U0DBUFXADDR,  			    &ao_spi_const, @@ -64,7 +67,6 @@ ao_spi_send(void __xdata *block, uint16_t len) __reentrant  	ao_dma_trigger(ao_spi_dma_out_id);  	__critical while (!ao_spi_dma_in_done)  		ao_sleep(&ao_spi_dma_in_done); -	ao_mutex_put(&ao_spi_mutex);  }  /* Receive bytes over SPI. @@ -76,7 +78,6 @@ ao_spi_send(void __xdata *block, uint16_t len) __reentrant  void  ao_spi_recv(void __xdata *block, uint16_t len) __reentrant  { -	ao_mutex_get(&ao_spi_mutex);  	ao_dma_set_transfer(ao_spi_dma_in_id,  			    &U0DBUFXADDR,  			    block, @@ -104,7 +105,6 @@ ao_spi_recv(void __xdata *block, uint16_t len) __reentrant  	ao_dma_trigger(ao_spi_dma_out_id);  	__critical while (!ao_spi_dma_in_done)  		ao_sleep(&ao_spi_dma_in_done); -	ao_mutex_put(&ao_spi_mutex);  }  /*  | 
