Chris BAYLEY
/
BlueGiga_PairTest
Simple test routine to speak with Blue giga WT-12A
main.cpp@0:fe1a4941bdb6, 2011-12-15 (annotated)
- Committer:
- cbayley
- Date:
- Thu Dec 15 03:00:58 2011 +0000
- Revision:
- 0:fe1a4941bdb6
Initital version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cbayley | 0:fe1a4941bdb6 | 1 | #include "mbed.h" |
cbayley | 0:fe1a4941bdb6 | 2 | |
cbayley | 0:fe1a4941bdb6 | 3 | #define BCSP 0 |
cbayley | 0:fe1a4941bdb6 | 4 | |
cbayley | 0:fe1a4941bdb6 | 5 | //I2C acp(p9, p10); |
cbayley | 0:fe1a4941bdb6 | 6 | Serial serBT(p28,p27); |
cbayley | 0:fe1a4941bdb6 | 7 | Serial serPC(USBTX,USBRX); |
cbayley | 0:fe1a4941bdb6 | 8 | |
cbayley | 0:fe1a4941bdb6 | 9 | InterruptIn intCD(p22); |
cbayley | 0:fe1a4941bdb6 | 10 | |
cbayley | 0:fe1a4941bdb6 | 11 | DigitalOut ledBT(LED1); |
cbayley | 0:fe1a4941bdb6 | 12 | DigitalOut ledDAT(LED2); |
cbayley | 0:fe1a4941bdb6 | 13 | DigitalOut ledCD0(LED3); |
cbayley | 0:fe1a4941bdb6 | 14 | DigitalOut ledCD(LED4); |
cbayley | 0:fe1a4941bdb6 | 15 | |
cbayley | 0:fe1a4941bdb6 | 16 | DigitalOut outBTRES(p24); |
cbayley | 0:fe1a4941bdb6 | 17 | DigitalOut outDTR(p23); |
cbayley | 0:fe1a4941bdb6 | 18 | |
cbayley | 0:fe1a4941bdb6 | 19 | Timeout toBTled; |
cbayley | 0:fe1a4941bdb6 | 20 | |
cbayley | 0:fe1a4941bdb6 | 21 | void timeoutBt(void) |
cbayley | 0:fe1a4941bdb6 | 22 | { |
cbayley | 0:fe1a4941bdb6 | 23 | ledBT = 0; |
cbayley | 0:fe1a4941bdb6 | 24 | } |
cbayley | 0:fe1a4941bdb6 | 25 | |
cbayley | 0:fe1a4941bdb6 | 26 | void goOffline( void ) |
cbayley | 0:fe1a4941bdb6 | 27 | { |
cbayley | 0:fe1a4941bdb6 | 28 | serPC.printf("CMD\n"); |
cbayley | 0:fe1a4941bdb6 | 29 | outDTR = 1; |
cbayley | 0:fe1a4941bdb6 | 30 | wait(0.10); |
cbayley | 0:fe1a4941bdb6 | 31 | outDTR = 0; |
cbayley | 0:fe1a4941bdb6 | 32 | //serPC.printf("DTR = %u\n",outDTR.read() ); |
cbayley | 0:fe1a4941bdb6 | 33 | } |
cbayley | 0:fe1a4941bdb6 | 34 | |
cbayley | 0:fe1a4941bdb6 | 35 | void onCDUp(void) |
cbayley | 0:fe1a4941bdb6 | 36 | { |
cbayley | 0:fe1a4941bdb6 | 37 | ledCD = 1; |
cbayley | 0:fe1a4941bdb6 | 38 | serPC.printf("CD up\n"); |
cbayley | 0:fe1a4941bdb6 | 39 | } |
cbayley | 0:fe1a4941bdb6 | 40 | |
cbayley | 0:fe1a4941bdb6 | 41 | void onCDDn(void) |
cbayley | 0:fe1a4941bdb6 | 42 | { |
cbayley | 0:fe1a4941bdb6 | 43 | ledCD = 0; |
cbayley | 0:fe1a4941bdb6 | 44 | serPC.printf("CD dn\n"); |
cbayley | 0:fe1a4941bdb6 | 45 | } |
cbayley | 0:fe1a4941bdb6 | 46 | |
cbayley | 0:fe1a4941bdb6 | 47 | void ledBTOn(void) |
cbayley | 0:fe1a4941bdb6 | 48 | { |
cbayley | 0:fe1a4941bdb6 | 49 | ledBT = 1; |
cbayley | 0:fe1a4941bdb6 | 50 | toBTled.attach(timeoutBt,0.1); |
cbayley | 0:fe1a4941bdb6 | 51 | } |
cbayley | 0:fe1a4941bdb6 | 52 | |
cbayley | 0:fe1a4941bdb6 | 53 | void resetBT(void) |
cbayley | 0:fe1a4941bdb6 | 54 | { |
cbayley | 0:fe1a4941bdb6 | 55 | outBTRES = 1; |
cbayley | 0:fe1a4941bdb6 | 56 | wait(0.010); |
cbayley | 0:fe1a4941bdb6 | 57 | outBTRES = 0; |
cbayley | 0:fe1a4941bdb6 | 58 | } |
cbayley | 0:fe1a4941bdb6 | 59 | |
cbayley | 0:fe1a4941bdb6 | 60 | int main() { |
cbayley | 0:fe1a4941bdb6 | 61 | serPC.baud(115200); |
cbayley | 0:fe1a4941bdb6 | 62 | serBT.baud(115200); |
cbayley | 0:fe1a4941bdb6 | 63 | |
cbayley | 0:fe1a4941bdb6 | 64 | //serBT.format( 8, Serial::Even, 1 ); |
cbayley | 0:fe1a4941bdb6 | 65 | // serBT.format( 8, Serial::None, 1 ); |
cbayley | 0:fe1a4941bdb6 | 66 | |
cbayley | 0:fe1a4941bdb6 | 67 | serPC.format( 8, Serial::Even, 1 ); |
cbayley | 0:fe1a4941bdb6 | 68 | |
cbayley | 0:fe1a4941bdb6 | 69 | intCD.rise(onCDUp); |
cbayley | 0:fe1a4941bdb6 | 70 | intCD.fall(onCDDn); |
cbayley | 0:fe1a4941bdb6 | 71 | ledBT = 0; |
cbayley | 0:fe1a4941bdb6 | 72 | |
cbayley | 0:fe1a4941bdb6 | 73 | serPC.printf("Mbed starting\n"); |
cbayley | 0:fe1a4941bdb6 | 74 | resetBT(); |
cbayley | 0:fe1a4941bdb6 | 75 | |
cbayley | 0:fe1a4941bdb6 | 76 | wait(0.5); |
cbayley | 0:fe1a4941bdb6 | 77 | serBT.printf("INFO\n"); |
cbayley | 0:fe1a4941bdb6 | 78 | |
cbayley | 0:fe1a4941bdb6 | 79 | while(1) { |
cbayley | 0:fe1a4941bdb6 | 80 | char c; |
cbayley | 0:fe1a4941bdb6 | 81 | |
cbayley | 0:fe1a4941bdb6 | 82 | if(serPC.readable()) { |
cbayley | 0:fe1a4941bdb6 | 83 | c = serPC.getc(); |
cbayley | 0:fe1a4941bdb6 | 84 | #if !BCSP |
cbayley | 0:fe1a4941bdb6 | 85 | if ( c == 0x1B ) |
cbayley | 0:fe1a4941bdb6 | 86 | goOffline(); |
cbayley | 0:fe1a4941bdb6 | 87 | else |
cbayley | 0:fe1a4941bdb6 | 88 | #endif |
cbayley | 0:fe1a4941bdb6 | 89 | { |
cbayley | 0:fe1a4941bdb6 | 90 | ledBTOn(); |
cbayley | 0:fe1a4941bdb6 | 91 | serBT.putc(c); |
cbayley | 0:fe1a4941bdb6 | 92 | } |
cbayley | 0:fe1a4941bdb6 | 93 | } |
cbayley | 0:fe1a4941bdb6 | 94 | |
cbayley | 0:fe1a4941bdb6 | 95 | if(serBT.readable()) { |
cbayley | 0:fe1a4941bdb6 | 96 | ledBTOn(); |
cbayley | 0:fe1a4941bdb6 | 97 | c = serBT.getc(); |
cbayley | 0:fe1a4941bdb6 | 98 | serPC.putc(c); |
cbayley | 0:fe1a4941bdb6 | 99 | } |
cbayley | 0:fe1a4941bdb6 | 100 | } |
cbayley | 0:fe1a4941bdb6 | 101 | } |
cbayley | 0:fe1a4941bdb6 | 102 |