Charith Dassanayake / CPPToPigpio - Testing Programs
Committer:
Charith Dassanayake
Date:
Wed Dec 13 00:06:47 2017 -0500
Revision:
0:9a49249d42b3
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Charith Dassanayake 0:9a49249d42b3 1 #include <iostream>
Charith Dassanayake 0:9a49249d42b3 2 #include <CPPToPigpio.h>
Charith Dassanayake 0:9a49249d42b3 3 #include "MPR121.cc"
Charith Dassanayake 0:9a49249d42b3 4 //using namespace CPPToPigpio;
Charith Dassanayake 0:9a49249d42b3 5
Charith Dassanayake 0:9a49249d42b3 6 CPPToPigpio::I2C myi2c(p2, p3);
Charith Dassanayake 0:9a49249d42b3 7 Mpr121 mpr121(&myi2c, Mpr121::ADD_VSS);
Charith Dassanayake 0:9a49249d42b3 8 void fallInterrupt(int gpio, int level, uint32_t tick) {
Charith Dassanayake 0:9a49249d42b3 9 int key_code=0;
Charith Dassanayake 0:9a49249d42b3 10 int value=mpr121.read(0x00);
Charith Dassanayake 0:9a49249d42b3 11 value +=mpr121.read(0x01)<<8;
Charith Dassanayake 0:9a49249d42b3 12
Charith Dassanayake 0:9a49249d42b3 13 for (int i=0; i<12; i++) {
Charith Dassanayake 0:9a49249d42b3 14 if (((value>>i)&0x01)==1) key_code=i+1;
Charith Dassanayake 0:9a49249d42b3 15 }
Charith Dassanayake 0:9a49249d42b3 16
Charith Dassanayake 0:9a49249d42b3 17 if (key_code) printf("Key Pressed: %d\n", key_code-1);
Charith Dassanayake 0:9a49249d42b3 18
Charith Dassanayake 0:9a49249d42b3 19
Charith Dassanayake 0:9a49249d42b3 20 }
Charith Dassanayake 0:9a49249d42b3 21
Charith Dassanayake 0:9a49249d42b3 22 int main()
Charith Dassanayake 0:9a49249d42b3 23 {
Charith Dassanayake 0:9a49249d42b3 24
Charith Dassanayake 0:9a49249d42b3 25 //gpioInitialise();
Charith Dassanayake 0:9a49249d42b3 26
Charith Dassanayake 0:9a49249d42b3 27 printf("\nHello from the mbed & mpr121\n\r");
Charith Dassanayake 0:9a49249d42b3 28
Charith Dassanayake 0:9a49249d42b3 29 unsigned char dataArray[2];
Charith Dassanayake 0:9a49249d42b3 30 int key;
Charith Dassanayake 0:9a49249d42b3 31 int count = 0;
Charith Dassanayake 0:9a49249d42b3 32
Charith Dassanayake 0:9a49249d42b3 33 printf("Test 1: read a value: \r\n");
Charith Dassanayake 0:9a49249d42b3 34 dataArray[0] = mpr121.read(AFE_CFG);
Charith Dassanayake 0:9a49249d42b3 35 printf("Read value=%x\r\n\n",dataArray[0]);
Charith Dassanayake 0:9a49249d42b3 36
Charith Dassanayake 0:9a49249d42b3 37 printf("Test 2: read a value: \r\n");
Charith Dassanayake 0:9a49249d42b3 38 dataArray[0] = mpr121.read(0x5d);
Charith Dassanayake 0:9a49249d42b3 39 printf("Read value=%x\r\n\n",dataArray[0]);
Charith Dassanayake 0:9a49249d42b3 40
Charith Dassanayake 0:9a49249d42b3 41 printf("Test 3: write & read a value: \r\n");
Charith Dassanayake 0:9a49249d42b3 42 mpr121.read(ELE0_T);
Charith Dassanayake 0:9a49249d42b3 43 mpr121.write(ELE0_T,0x22);
Charith Dassanayake 0:9a49249d42b3 44 dataArray[0] = mpr121.read(ELE0_T);
Charith Dassanayake 0:9a49249d42b3 45 printf("Read value=%x\r\n\n",dataArray[0]);
Charith Dassanayake 0:9a49249d42b3 46
Charith Dassanayake 0:9a49249d42b3 47 printf("Test 4: Write many values: \r\n");
Charith Dassanayake 0:9a49249d42b3 48 unsigned char data[] = {0x1,0x3,0x5,0x9,0x15,0x25,0x41};
Charith Dassanayake 0:9a49249d42b3 49 mpr121.writeMany(0x42,data,7);
Charith Dassanayake 0:9a49249d42b3 50
Charith Dassanayake 0:9a49249d42b3 51 // Now read them back ..
Charith Dassanayake 0:9a49249d42b3 52 key = 0x42;
Charith Dassanayake 0:9a49249d42b3 53 count = 0;
Charith Dassanayake 0:9a49249d42b3 54 while (count < 7) {
Charith Dassanayake 0:9a49249d42b3 55 char result = mpr121.read(key);
Charith Dassanayake 0:9a49249d42b3 56 key++;
Charith Dassanayake 0:9a49249d42b3 57 count++;
Charith Dassanayake 0:9a49249d42b3 58 printf("Read value: '%x'=%x\n\r",key,result);
Charith Dassanayake 0:9a49249d42b3 59 }
Charith Dassanayake 0:9a49249d42b3 60
Charith Dassanayake 0:9a49249d42b3 61 printf("Test 5: Read Electrodes:\r\n");
Charith Dassanayake 0:9a49249d42b3 62 key = ELE0_T;
Charith Dassanayake 0:9a49249d42b3 63 count = 0;
Charith Dassanayake 0:9a49249d42b3 64 while (count < 24) {
Charith Dassanayake 0:9a49249d42b3 65 char result = mpr121.read(key);
Charith Dassanayake 0:9a49249d42b3 66 printf("Read key:%x value:%x\n\r",key,result);
Charith Dassanayake 0:9a49249d42b3 67 key++;
Charith Dassanayake 0:9a49249d42b3 68 count++;
Charith Dassanayake 0:9a49249d42b3 69 }
Charith Dassanayake 0:9a49249d42b3 70 printf("--------- \r\n\n");
Charith Dassanayake 0:9a49249d42b3 71
Charith Dassanayake 0:9a49249d42b3 72 //mpr121.setProximityMode(true);
Charith Dassanayake 0:9a49249d42b3 73 printf("reading...\r\n");
Charith Dassanayake 0:9a49249d42b3 74 printf("ELE_CFG=%x\r\n", mpr121.read(ELE_CFG));
Charith Dassanayake 0:9a49249d42b3 75
Charith Dassanayake 0:9a49249d42b3 76 CPPToPigpio::DigitalIn intr(p17);
Charith Dassanayake 0:9a49249d42b3 77 intr.mode(PullUp);
Charith Dassanayake 0:9a49249d42b3 78 gpioSetISRFunc(p17, FALLING_EDGE, 0, fallInterrupt);
Charith Dassanayake 0:9a49249d42b3 79
Charith Dassanayake 0:9a49249d42b3 80
Charith Dassanayake 0:9a49249d42b3 81 while (1) {
Charith Dassanayake 0:9a49249d42b3 82 time_sleep(5);
Charith Dassanayake 0:9a49249d42b3 83 printf(".\r\n");
Charith Dassanayake 0:9a49249d42b3 84
Charith Dassanayake 0:9a49249d42b3 85 }
Charith Dassanayake 0:9a49249d42b3 86
Charith Dassanayake 0:9a49249d42b3 87
Charith Dassanayake 0:9a49249d42b3 88 gpioTerminate();
Charith Dassanayake 0:9a49249d42b3 89 }
Charith Dassanayake 0:9a49249d42b3 90
Charith Dassanayake 0:9a49249d42b3 91
Charith Dassanayake 0:9a49249d42b3 92
Charith Dassanayake 0:9a49249d42b3 93
Charith Dassanayake 0:9a49249d42b3 94
Charith Dassanayake 0:9a49249d42b3 95
Charith Dassanayake 0:9a49249d42b3 96
Charith Dassanayake 0:9a49249d42b3 97