A program allowing the output of one or two Wii Nunchucks to be read via I2C and decoded for use.

Dependencies:   mbed

Committer:
snatch59
Date:
Sun Dec 13 12:19:31 2009 +0000
Revision:
0:d51f5e2478c1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
snatch59 0:d51f5e2478c1 1 /*
snatch59 0:d51f5e2478c1 2 * WiiNunchuckReader. A program allowing the output of one or two
snatch59 0:d51f5e2478c1 3 * Wii Nunchucks to be read via I2C and decoded for use, using the mbed
snatch59 0:d51f5e2478c1 4 * microcontroller and its associated libraries.
snatch59 0:d51f5e2478c1 5 *
snatch59 0:d51f5e2478c1 6 * Copyright (C) <2009> Petras Saduikis <petras@petras.co.uk>
snatch59 0:d51f5e2478c1 7 *
snatch59 0:d51f5e2478c1 8 * This file is part of WiiNunchuckReader.
snatch59 0:d51f5e2478c1 9 *
snatch59 0:d51f5e2478c1 10 * WiiNunchuckReader is free software: you can redistribute it and/or modify
snatch59 0:d51f5e2478c1 11 * it under the terms of the GNU General Public License as published by
snatch59 0:d51f5e2478c1 12 * the Free Software Foundation, either version 3 of the License, or
snatch59 0:d51f5e2478c1 13 * (at your option) any later version.
snatch59 0:d51f5e2478c1 14 *
snatch59 0:d51f5e2478c1 15 * WiiNunchuckReader is distributed in the hope that it will be useful,
snatch59 0:d51f5e2478c1 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
snatch59 0:d51f5e2478c1 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
snatch59 0:d51f5e2478c1 18 * GNU General Public License for more details.
snatch59 0:d51f5e2478c1 19 *
snatch59 0:d51f5e2478c1 20 * You should have received a copy of the GNU General Public License
snatch59 0:d51f5e2478c1 21 * along with WiiNunchuckReader. If not, see <http://www.gnu.org/licenses/>.
snatch59 0:d51f5e2478c1 22 */
snatch59 0:d51f5e2478c1 23
snatch59 0:d51f5e2478c1 24 #ifndef SNATCH59_WIINUNCHUCKREADER_H
snatch59 0:d51f5e2478c1 25 #define SNATCH59_WIINUNCHUCKREADER_H
snatch59 0:d51f5e2478c1 26
snatch59 0:d51f5e2478c1 27 #include <mbed.h>
snatch59 0:d51f5e2478c1 28 #include "WiiNunchuckDefs.h"
snatch59 0:d51f5e2478c1 29
snatch59 0:d51f5e2478c1 30 typedef unsigned char BYTE;
snatch59 0:d51f5e2478c1 31
snatch59 0:d51f5e2478c1 32 class WiiNunchuckReader
snatch59 0:d51f5e2478c1 33 {
snatch59 0:d51f5e2478c1 34 public:
snatch59 0:d51f5e2478c1 35 // constructors
snatch59 0:d51f5e2478c1 36 WiiNunchuckReader(PinName sda, PinName scl);
snatch59 0:d51f5e2478c1 37
snatch59 0:d51f5e2478c1 38 // functions
snatch59 0:d51f5e2478c1 39 void RequestRead();
snatch59 0:d51f5e2478c1 40
snatch59 0:d51f5e2478c1 41 // accessors
snatch59 0:d51f5e2478c1 42 int getJoyX() const { return joyX; }
snatch59 0:d51f5e2478c1 43 int getJoyY() const { return joyY; }
snatch59 0:d51f5e2478c1 44 int getAccelX() const { return accelX; }
snatch59 0:d51f5e2478c1 45 int getAccelY() const { return accelY; }
snatch59 0:d51f5e2478c1 46 int getAccelZ() const { return accelZ; }
snatch59 0:d51f5e2478c1 47 int getButtonC() const { return buttonC; }
snatch59 0:d51f5e2478c1 48 int getButtonZ() const { return buttonZ; }
snatch59 0:d51f5e2478c1 49 int getBufferSize() const { return sizeof(readBuf); }
snatch59 0:d51f5e2478c1 50 char* getReadBuf() { return readBuf; }
snatch59 0:d51f5e2478c1 51
snatch59 0:d51f5e2478c1 52 private:
snatch59 0:d51f5e2478c1 53 // nunchuck controls states
snatch59 0:d51f5e2478c1 54 int joyX;
snatch59 0:d51f5e2478c1 55 int joyY;
snatch59 0:d51f5e2478c1 56 int accelX;
snatch59 0:d51f5e2478c1 57 int accelY;
snatch59 0:d51f5e2478c1 58 int accelZ;
snatch59 0:d51f5e2478c1 59 int buttonC;
snatch59 0:d51f5e2478c1 60 int buttonZ;
snatch59 0:d51f5e2478c1 61
snatch59 0:d51f5e2478c1 62 // nunchuck init state
snatch59 0:d51f5e2478c1 63 bool nunchuckInit;
snatch59 0:d51f5e2478c1 64
snatch59 0:d51f5e2478c1 65 // nunchuck I2C port
snatch59 0:d51f5e2478c1 66 I2C nunchuckPort;
snatch59 0:d51f5e2478c1 67
snatch59 0:d51f5e2478c1 68 // read data
snatch59 0:d51f5e2478c1 69 char readBuf[NUNCHUCK_READLEN];
snatch59 0:d51f5e2478c1 70
snatch59 0:d51f5e2478c1 71 // functions
snatch59 0:d51f5e2478c1 72 bool NunchuckInit();
snatch59 0:d51f5e2478c1 73 bool NunchuckRead();
snatch59 0:d51f5e2478c1 74 void NunchuckDecode();
snatch59 0:d51f5e2478c1 75 void DecodeAdditional();
snatch59 0:d51f5e2478c1 76 };
snatch59 0:d51f5e2478c1 77
snatch59 0:d51f5e2478c1 78 #endif