t

Dependencies:   mbed

main.cpp

Committer:
abuckton
Date:
2011-02-28
Revision:
0:2e5b82508aea
Child:
1:d1837531c318

File content as of revision 0:2e5b82508aea:

#include <mbed.h>
#include <string>
#include <list>

#include <mpr121.h>

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);


// Create the interrupt receiver object on pin 26
InterruptIn interrupt(p26);

// Setup the Serial to the PC for debugging
Serial pc(USBTX, USBRX);

// Setup the i2c bus on pins 28 and 27
I2C i2c(p28, p27);

// Setup the Mpr121:
// constructor(i2c object, i2c address of the mpr121)
Mpr121 mpr121(&i2c, Mpr121::ADD_VSS);
    
void fallInterrupt(){
    int value=mpr121.read(0x00);
    value +=mpr121.read(0x01)<<8;
    pc.printf("MPR value: %x \r\n", value);
}
    
int main() {

    pc.printf("\nHello from the mbed & mpr121\n\r");
    
    unsigned char dataArray[2];
    int key;
    int count = 0;

    pc.printf("Test 1: read a value: \r\n");
    dataArray[0] = mpr121.read(AFE_CFG);
    pc.printf("Read value=%x\r\n\n",dataArray[0]);
    
    pc.printf("Test 2: read a value: \r\n");
    dataArray[0] = mpr121.read(0x5d);
    pc.printf("Read value=%x\r\n\n",dataArray[0]);

    pc.printf("Test 3: write & read a value: \r\n");
    mpr121.read(ELE0_T);
    mpr121.write(ELE0_T,0x22);
    dataArray[0] = mpr121.read(ELE0_T);
    pc.printf("Read value=%x\r\n\n",dataArray[0]);
    
    pc.printf("Test 4: Write many values: \r\n");
    unsigned char data[] = {0x1,0x3,0x5,0x9,0x15,0x25,0x41};
    mpr121.writeMany(0x42,data,7);
    
    // Now read them back ..
    key = 0x42;
    count = 0;
    while(count < 7){
        char result = mpr121.read(key);
        key++;
        count++;
        pc.printf("Read value: '%x'=%x\n\r",key,result);
    }
    
    pc.printf("Test 5: Read Electrodes:\r\n");
    key = ELE0_T;
    count = 0;
    while(count < 24){
        char result = mpr121.read(key);
        pc.printf("Read key:%x value:%x\n\r",key,result);
        key++;
        count++;    }
    pc.printf("--------- \r\n\n");
    
    mpr121.setProximityMode(true);
    
    pc.printf("ELE_CFG=%x", mpr121.read(ELE_CFG));
    
    interrupt.fall(&fallInterrupt);
    interrupt.mode(PullUp);
    
    while(1){
        wait(5);
        pc.printf(".");
    }

}