Dependencies:   mbed Birdy_BlueWIi

Committer:
bediyap
Date:
Mon Dec 19 08:58:30 2011 +0000
Revision:
0:f202da21ef75

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bediyap 0:f202da21ef75 1
bediyap 0:f202da21ef75 2 /*
bediyap 0:f202da21ef75 3 Simple test shell to exercise mouse,keyboard,mass storage and hubs.
bediyap 0:f202da21ef75 4 Add 2 15k pulldown resistors between D+/D- and ground, attach a usb socket and have at it.
bediyap 0:f202da21ef75 5 */
bediyap 0:f202da21ef75 6
bediyap 0:f202da21ef75 7 #include "mbed.h"
bediyap 0:f202da21ef75 8 #include "Wiimote.h"
bediyap 0:f202da21ef75 9
bediyap 0:f202da21ef75 10 //-- Peripheral Declaration --//
bediyap 0:f202da21ef75 11 DigitalOut led1(LED1);
bediyap 0:f202da21ef75 12 DigitalOut led2(LED2);
bediyap 0:f202da21ef75 13 DigitalOut led3(LED3);
bediyap 0:f202da21ef75 14 DigitalOut led4(LED4);
bediyap 0:f202da21ef75 15 const int ON = 1;
bediyap 0:f202da21ef75 16 const int OFF = 0;
bediyap 0:f202da21ef75 17
bediyap 0:f202da21ef75 18
bediyap 0:f202da21ef75 19 Serial pc(USBTX, USBRX);
bediyap 0:f202da21ef75 20 /*
bediyap 0:f202da21ef75 21 int GetConsoleChar()
bediyap 0:f202da21ef75 22 {
bediyap 0:f202da21ef75 23 if (!pc.readable())
bediyap 0:f202da21ef75 24 return -1;
bediyap 0:f202da21ef75 25 char c = pc.getc();
bediyap 0:f202da21ef75 26 pc.putc(c); // echo
bediyap 0:f202da21ef75 27 return c;
bediyap 0:f202da21ef75 28 }
bediyap 0:f202da21ef75 29 */
bediyap 0:f202da21ef75 30 Wiimote wii;
bediyap 0:f202da21ef75 31 // this is called by the USB infrastructure when a wii message comes in
bediyap 0:f202da21ef75 32 void wii_interrupt() {
bediyap 0:f202da21ef75 33
bediyap 0:f202da21ef75 34 // temporary action triggers
bediyap 0:f202da21ef75 35 if (wii.up) {
bediyap 0:f202da21ef75 36 led2 = ON;
bediyap 0:f202da21ef75 37 } else {
bediyap 0:f202da21ef75 38 led2 = OFF;
bediyap 0:f202da21ef75 39 }
bediyap 0:f202da21ef75 40 if (wii.down) {
bediyap 0:f202da21ef75 41 led3 = ON;
bediyap 0:f202da21ef75 42 } else {
bediyap 0:f202da21ef75 43 led3 = OFF;
bediyap 0:f202da21ef75 44 }
bediyap 0:f202da21ef75 45 if (wii.left) {
bediyap 0:f202da21ef75 46 led1 = ON;
bediyap 0:f202da21ef75 47 } else {
bediyap 0:f202da21ef75 48 led1 = OFF;
bediyap 0:f202da21ef75 49 }
bediyap 0:f202da21ef75 50 if (wii.right) {
bediyap 0:f202da21ef75 51 led4 = ON;
bediyap 0:f202da21ef75 52 if (!wii.isOn(WIILED4)) wii.turnOn(WIILED4);
bediyap 0:f202da21ef75 53 } else {
bediyap 0:f202da21ef75 54 if (wii.isOn(WIILED4)) wii.turnOff(WIILED4);
bediyap 0:f202da21ef75 55 led4 = OFF;
bediyap 0:f202da21ef75 56 }
bediyap 0:f202da21ef75 57 if (wii.a) {
bediyap 0:f202da21ef75 58 led1 = led2 = led3 = led4 = ON;
bediyap 0:f202da21ef75 59 if (!wii.isOn(WIILED2+WIILED3+WIILED4)) wii.turnOn(WIILED2+WIILED3+WIILED4);
bediyap 0:f202da21ef75 60 } else {
bediyap 0:f202da21ef75 61 led1 = led2 = led3 = led4 = OFF;
bediyap 0:f202da21ef75 62 if (wii.isOn(WIILED2+WIILED3+WIILED4)) wii.turnOff(WIILED2+WIILED3+WIILED4);
bediyap 0:f202da21ef75 63 }
bediyap 0:f202da21ef75 64 if (wii.plus) {
bediyap 0:f202da21ef75 65 if (!wii.isOn(WIIRUMBLE))wii.turnOn(WIIRUMBLE);
bediyap 0:f202da21ef75 66 }
bediyap 0:f202da21ef75 67 if (wii.minus) {
bediyap 0:f202da21ef75 68 if (wii.isOn(WIIRUMBLE))wii.turnOff(WIIRUMBLE);
bediyap 0:f202da21ef75 69 }
bediyap 0:f202da21ef75 70 }
bediyap 0:f202da21ef75 71
bediyap 0:f202da21ef75 72 void startWiiCom(const char * wiiMAC);
bediyap 0:f202da21ef75 73
bediyap 0:f202da21ef75 74 int main()
bediyap 0:f202da21ef75 75 {
bediyap 0:f202da21ef75 76 char controller01[] = "00:1F:C5:4C:29:99"; // S.NAKAMURA 01
bediyap 0:f202da21ef75 77 char controller02[] = "00:21:47:F6:21:D8"; // S.NAKAMURA 02
bediyap 0:f202da21ef75 78 pc.baud(115200);
bediyap 0:f202da21ef75 79 printf("BlueUSB\nNow get a bunch of usb or bluetooth things and plug them in\n");
bediyap 0:f202da21ef75 80 startWiiCom(controller01);
bediyap 0:f202da21ef75 81 }