Simple test routine to speak with Blue giga WT-12A

Dependencies:   mbed

Committer:
cbayley
Date:
Thu Dec 15 03:00:58 2011 +0000
Revision:
0:fe1a4941bdb6
Initital version

Who changed what in which revision?

UserRevisionLine numberNew 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