This program is a initial connection test of mBed and Texas Instruments EZ430 Chronos Watch. The Chronos RF Access Point radio dongle is connected to mBed usb port , and it's configured as a usb host. The program uses the USBHostSerial library.
Chronos Test
- This program is a successful connection test between mBed and the watch EZ430 Chronos Development Tool from texas Instruments.
- The RF Access Point usb dongle, that comes with the watch, emulates a usb serial port when connected to a PC. I connected it to the mBed usb port , configured as host ( two 10 K ohms resistors from D+,D- to gnd , I know the recommended value is 15k ) and based the development on the USBHostSerial HelloWorld example program.
- The mBed leds are activated based on the button received from the watch : led2 goes on when the "*" button is pressed , led3 when the "#" button is pressed and led4 when the "up"button is pressed .
- In order to function , you have to select the "ppt control" mode on the chronos watch and after that , start the transmission pressing the "down" button on the watch.
Revision 1:461ba80810ce, committed 2014-07-30
- Comitter:
- jeroavf
- Date:
- Wed Jul 30 02:16:30 2014 +0000
- Parent:
- 0:54aa44094993
- Commit message:
- Excluding a redundant while (1) loop
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Jul 30 02:07:46 2014 +0000 +++ b/main.cpp Wed Jul 30 02:16:30 2014 +0000 @@ -1,22 +1,23 @@ #include "mbed.h" #include "USBHostSerial.h" - + DigitalOut led(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); Serial pc(USBTX, USBRX); -int chronos_answer[10] ; - -void serial_task(void const*) { +int chronos_answer[10] ; + +void serial_task(void const*) +{ USBHostSerial serial; - + while(!serial.connect()) Thread::wait(500); - - serial.baud(115200) ; + + serial.baud(115200) ; pc.printf("chronos init ...\n") ; @@ -24,58 +25,58 @@ serial.putc(0x07) ; serial.putc(0x03) ; pc.printf("chronos init completed ...\n") ; - - + + while(1) { - while (1) { + + // send read request to chronos + serial.putc(0xFF); + serial.putc(0x08); + serial.putc(0x07); + serial.putc(0x00); + serial.putc(0x00); + serial.putc(0x00); + serial.putc(0x00); + Thread::wait(15); + - // send read request to chronos - serial.putc(0xFF); - serial.putc(0x08); - serial.putc(0x07); - serial.putc(0x00); - serial.putc(0x00); - serial.putc(0x00); - serial.putc(0x00); - Thread::wait(15); - + // put received characters on an array + int i = 0 ; + while (serial.available()) { + int c_in = serial.getc() ; + chronos_answer[i++] = c_in ; + } + int button = chronos_answer[3] ; + if(button != 255) { + printf("Button received : %d\n", button ) ; + switch(button) { + case 18 : // * button + led2 = 1 ; + led3 = 0 ; + led4 = 0 ; + break ; + case 50 : // up button + led2 = 0 ; + led3 = 1 ; + led4 = 0 ; + break ; + case 34 : // # button + led2 = 0 ; + led3 = 0 ; + led4 = 1 ; + break ; - // put received characters on an array - int i = 0 ; - while (serial.available()) { - int c_in = serial.getc() ; - chronos_answer[i++] = c_in ; } - int button = chronos_answer[3] ; - if(button != 255) { - printf("Button received : %d\n", button ) ; - switch(button) { - case 18 : // * button - led2 = 1 ; - led3 = 0 ; - led4 = 0 ; - break ; - case 50 : // up button - led2 = 0 ; - led3 = 1 ; - led4 = 0 ; - break ; - case 34 : // # button - led2 = 0 ; - led3 = 0 ; - led4 = 1 ; - break ; - - } - } - - - Thread::wait(50); } + + + Thread::wait(50); + } } - -int main() { + +int main() +{ Thread serialTask(serial_task, NULL, osPriorityNormal, 256 * 4); while(1) { led=!led;