Karl Nicolaus
/
4180_Lab1_P6
t
Diff: main.cpp
- Revision:
- 0:2e5b82508aea
- Child:
- 1:d1837531c318
diff -r 000000000000 -r 2e5b82508aea main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Feb 28 12:07:17 2011 +0000 @@ -0,0 +1,93 @@ +#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("."); + } + +} + + +