Frank Weissenborn / WiiChuck

Dependents:   WiiNunchuckTest

WiiChuck.h

Committer:
FrankWeissenborn
Date:
2011-02-02
Revision:
2:5737b6a16054
Parent:
1:f04b559e06b3
Child:
4:9169c602b0d8

File content as of revision 2:5737b6a16054:

#ifndef __WIICHUCK_H
#define __WIICHUCK_H

#include "mbed.h"

#define NUNCHUCK_ADDR     0xA4  // 0x52 << 1
#define NUNCHUCK_REGADDR  0x40  // 
#define NUNCHUCK_READLEN  0x06  //
#define I2C_ACK 0
#define I2C_READ_DELAY  0.01

#define Joy_X   0
#define Joy_Y   1
#define Acc_X   2
#define Acc_Y   3
#define Acc_Z   4
#define Button  5

// ----------------------------------------------------------------------------
//   Control values
// ----------------------------------------------------------------------------
#define BUTTON_PREV_VALUE               '1'
#define BUTTON_NEXT_VALUE               '2'
#define BUTTON_OK_VALUE                 '3'
#define BUTTON_CANCEL_VALUE             '4'
#define BUTTON_RESET_VALUE              'r'
#define BUTTON_VOLUME_PLUS              '+'
#define BUTTON_VOLUME_MINUS             '-'

typedef void(*pt2Func)(int);

class WiiChuck {
public:
    bool Error;
    WiiChuck(PinName data, PinName clk);
    bool Read(int* joyX,int* joyY,int* accX,int* accY,int* accZ,int* buttonC,int* buttonZ);
    void start();
    void stop();
    void attach(pt2Func function);
private: 
    I2C _i2c;
    pt2Func _callback_input;
    Ticker _getValues;
    void getValues();
    int _oldC;
    int _oldZ;
    

};

#endif