Dump SPI from input to pc.serial

Dependencies:   mbed

Committer:
cbayley
Date:
Mon Jan 30 23:08:52 2012 +0000
Revision:
0:1ca47c273d0f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cbayley 0:1ca47c273d0f 1 #include "string.h"
cbayley 0:1ca47c273d0f 2 #include "tinyQ.h"
cbayley 0:1ca47c273d0f 3
cbayley 0:1ca47c273d0f 4
cbayley 0:1ca47c273d0f 5
cbayley 0:1ca47c273d0f 6 /**
cbayley 0:1ca47c273d0f 7 * \brief Push an Accessibility Event onto our queue for sending to the iphone
cbayley 0:1ca47c273d0f 8 * \param q pointer to our tinyQ_t
cbayley 0:1ca47c273d0f 9 * \param c the Event to send to the iphone
cbayley 0:1ca47c273d0f 10 * \return null if Q full, 1 on success
cbayley 0:1ca47c273d0f 11 * \sa Qpop(), Qjump()
cbayley 0:1ca47c273d0f 12 * \ingroup tinyQ
cbayley 0:1ca47c273d0f 13 */
cbayley 0:1ca47c273d0f 14 int Qpush( tinyQ_t* q, char c )
cbayley 0:1ca47c273d0f 15 {
cbayley 0:1ca47c273d0f 16 if ( q->fill == Q_SIZE )
cbayley 0:1ca47c273d0f 17 return 0;
cbayley 0:1ca47c273d0f 18
cbayley 0:1ca47c273d0f 19 __disable_irq();
cbayley 0:1ca47c273d0f 20 q->fill++;
cbayley 0:1ca47c273d0f 21 q->data[q->head++] = c;
cbayley 0:1ca47c273d0f 22 __enable_irq();
cbayley 0:1ca47c273d0f 23
cbayley 0:1ca47c273d0f 24 return 1;
cbayley 0:1ca47c273d0f 25 }
cbayley 0:1ca47c273d0f 26
cbayley 0:1ca47c273d0f 27
cbayley 0:1ca47c273d0f 28 /**
cbayley 0:1ca47c273d0f 29 * \brief Pop an Accessibility Event off our queue for sending to the iphone
cbayley 0:1ca47c273d0f 30 * \param q pointer to our tinyQ_t
cbayley 0:1ca47c273d0f 31 * \param c pointer to receive the Event
cbayley 0:1ca47c273d0f 32 * \return null if Q empty, 1 on success
cbayley 0:1ca47c273d0f 33 * \sa Qpop(), Qjump()
cbayley 0:1ca47c273d0f 34 * \ingroup tinyQ
cbayley 0:1ca47c273d0f 35 */
cbayley 0:1ca47c273d0f 36 int Qpop( tinyQ_t* q, char * c)
cbayley 0:1ca47c273d0f 37 {
cbayley 0:1ca47c273d0f 38 if (! q->fill )
cbayley 0:1ca47c273d0f 39 return 0;
cbayley 0:1ca47c273d0f 40
cbayley 0:1ca47c273d0f 41 __disable_irq();
cbayley 0:1ca47c273d0f 42 q->fill--;
cbayley 0:1ca47c273d0f 43 *c = q->data[q->tail++];
cbayley 0:1ca47c273d0f 44 __enable_irq();
cbayley 0:1ca47c273d0f 45
cbayley 0:1ca47c273d0f 46 return 1;
cbayley 0:1ca47c273d0f 47 }
cbayley 0:1ca47c273d0f 48
cbayley 0:1ca47c273d0f 49 int Qfree( tinyQ_t* q )
cbayley 0:1ca47c273d0f 50 {
cbayley 0:1ca47c273d0f 51 return (Q_SIZE - q->fill);
cbayley 0:1ca47c273d0f 52 }
cbayley 0:1ca47c273d0f 53
cbayley 0:1ca47c273d0f 54 void Qinit( tinyQ_t * q )
cbayley 0:1ca47c273d0f 55 {
cbayley 0:1ca47c273d0f 56 memset( q, 0, sizeof(q) );
cbayley 0:1ca47c273d0f 57 }