Robert Ceschini / Mbed 2 deprecated PSU-POWERLOGGER

Dependencies:   mbed

Fork of PSU-POWERLOGGER by Eli Hughes

Committer:
rjc19
Date:
Fri Sep 28 15:41:36 2012 +0000
Revision:
3:d55665050fcb
Parent:
0:d0c18e423b13
Working serial logger needs interface improvement

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emh203 0:d0c18e423b13 1 #include "System.h"
emh203 0:d0c18e423b13 2
emh203 0:d0c18e423b13 3 ByteQueue PCBackDoorTx,PCBackDoorRx;
emh203 0:d0c18e423b13 4 BYTE PCBackDoorTx_Queue_Storage[PC_BACKDOOR_TX_QUEUE_SIZE];
emh203 0:d0c18e423b13 5 BYTE PCBackDoorRx_Queue_Storage[PC_BACKDOOR_RX_QUEUE_SIZE];
emh203 0:d0c18e423b13 6
emh203 0:d0c18e423b13 7 Serial PCBackDoor(USBTX, USBRX);
emh203 0:d0c18e423b13 8 Ticker PCBackDoorTxQueueCheck;
emh203 0:d0c18e423b13 9
emh203 0:d0c18e423b13 10 //IRQ for when data is received
emh203 0:d0c18e423b13 11 void PCBackDoorRxIRQ();
emh203 0:d0c18e423b13 12 void PCBackDoorMoveTxQueue();
emh203 0:d0c18e423b13 13
emh203 0:d0c18e423b13 14 void InitPCBackDoor()
emh203 0:d0c18e423b13 15 {
emh203 0:d0c18e423b13 16 InitByteQueue(&PCBackDoorTx,PC_BACKDOOR_TX_QUEUE_SIZE,&PCBackDoorTx_Queue_Storage[0]);
emh203 0:d0c18e423b13 17 InitByteQueue(&PCBackDoorRx,PC_BACKDOOR_RX_QUEUE_SIZE,&PCBackDoorRx_Queue_Storage[0]);
emh203 0:d0c18e423b13 18
rjc19 3:d55665050fcb 19 PCBackDoor.baud(9600);
emh203 0:d0c18e423b13 20 PCBackDoor.format(8,Serial::None,1);
emh203 0:d0c18e423b13 21
emh203 0:d0c18e423b13 22
emh203 0:d0c18e423b13 23 //The Rx IRQ wil fill up my big software Rx Queue
emh203 0:d0c18e423b13 24 PCBackDoor.attach(&PCBackDoorRxIRQ);
emh203 0:d0c18e423b13 25
emh203 0:d0c18e423b13 26 //Periodicically check my outgoing Tx Queue (every 1 mS)
emh203 0:d0c18e423b13 27 PCBackDoorTxQueueCheck.attach_us(&PCBackDoorMoveTxQueue,500);
emh203 0:d0c18e423b13 28 }
emh203 0:d0c18e423b13 29
emh203 0:d0c18e423b13 30 void PCBackDoorMoveTxQueue()
emh203 0:d0c18e423b13 31 {
emh203 0:d0c18e423b13 32 BYTE Temp;
emh203 0:d0c18e423b13 33
emh203 0:d0c18e423b13 34 while(PCBackDoor.writeable())
emh203 0:d0c18e423b13 35 {
emh203 0:d0c18e423b13 36 if(BytesInQueue(&PCBackDoorTx) == 0)
emh203 0:d0c18e423b13 37 {
emh203 0:d0c18e423b13 38 break;
emh203 0:d0c18e423b13 39 }
emh203 0:d0c18e423b13 40 else
emh203 0:d0c18e423b13 41 {
emh203 0:d0c18e423b13 42 ByteDequeue(&PCBackDoorTx,&Temp);
emh203 0:d0c18e423b13 43 PCBackDoor.putc(Temp);
emh203 0:d0c18e423b13 44 }
emh203 0:d0c18e423b13 45 }
emh203 0:d0c18e423b13 46
emh203 0:d0c18e423b13 47 }
emh203 0:d0c18e423b13 48
emh203 0:d0c18e423b13 49 void PCBackDoorRxIRQ()
emh203 0:d0c18e423b13 50 {
emh203 0:d0c18e423b13 51 while(PCBackDoor.readable())
emh203 0:d0c18e423b13 52 {
emh203 0:d0c18e423b13 53 ByteEnqueue(&PCBackDoorRx,(BYTE)PCBackDoor.getc());
emh203 0:d0c18e423b13 54 }
emh203 0:d0c18e423b13 55 }
emh203 0:d0c18e423b13 56