Karl Nicolaus
/
4180_Lab1_P6
t
main.cpp@2:1956c8e08cd3, 2019-02-23 (annotated)
- Committer:
- kanicolaus
- Date:
- Sat Feb 23 20:37:17 2019 +0000
- Revision:
- 2:1956c8e08cd3
- Parent:
- 1:d1837531c318
t
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
abuckton | 0:2e5b82508aea | 1 | #include <mbed.h> |
abuckton | 0:2e5b82508aea | 2 | #include <mpr121.h> |
kanicolaus | 2:1956c8e08cd3 | 3 | DigitalOut led1(LED1); |
kanicolaus | 2:1956c8e08cd3 | 4 | DigitalOut led2(LED2); |
kanicolaus | 2:1956c8e08cd3 | 5 | DigitalOut led3(LED3); |
kanicolaus | 2:1956c8e08cd3 | 6 | DigitalOut led4(LED4); |
abuckton | 0:2e5b82508aea | 7 | // Create the interrupt receiver object on pin 26 |
abuckton | 0:2e5b82508aea | 8 | InterruptIn interrupt(p26); |
kanicolaus | 2:1956c8e08cd3 | 9 | // Setup the i2c bus on pins 9 and 10 |
kanicolaus | 2:1956c8e08cd3 | 10 | I2C i2c(p9, p10); |
abuckton | 0:2e5b82508aea | 11 | // Setup the Mpr121: |
abuckton | 0:2e5b82508aea | 12 | // constructor(i2c object, i2c address of the mpr121) |
abuckton | 0:2e5b82508aea | 13 | Mpr121 mpr121(&i2c, Mpr121::ADD_VSS); |
kanicolaus | 2:1956c8e08cd3 | 14 | |
kanicolaus | 2:1956c8e08cd3 | 15 | // Key hit/release interrupt routine |
kanicolaus | 2:1956c8e08cd3 | 16 | void fallInterrupt() { |
kanicolaus | 2:1956c8e08cd3 | 17 | int key_code=0; |
kanicolaus | 2:1956c8e08cd3 | 18 | int i=0; |
kanicolaus | 2:1956c8e08cd3 | 19 | int value=mpr121.read(0x00); |
kanicolaus | 2:1956c8e08cd3 | 20 | value +=mpr121.read(0x01)<<8; |
kanicolaus | 2:1956c8e08cd3 | 21 | // LED demo mod |
kanicolaus | 2:1956c8e08cd3 | 22 | i=0; |
kanicolaus | 2:1956c8e08cd3 | 23 | // puts key number out to LEDs for demo |
kanicolaus | 2:1956c8e08cd3 | 24 | for (i=0; i<12; i++) { |
kanicolaus | 2:1956c8e08cd3 | 25 | if (((value>>i)&0x01)==1) key_code=i+1; |
kanicolaus | 2:1956c8e08cd3 | 26 | } |
kanicolaus | 2:1956c8e08cd3 | 27 | led4=key_code & 0x01; |
kanicolaus | 2:1956c8e08cd3 | 28 | led3=(key_code>>1) & 0x01; |
kanicolaus | 2:1956c8e08cd3 | 29 | led2=(key_code>>2) & 0x01; |
kanicolaus | 2:1956c8e08cd3 | 30 | led1=(key_code>>3) & 0x01; |
abuckton | 0:2e5b82508aea | 31 | } |
kanicolaus | 2:1956c8e08cd3 | 32 | |
abuckton | 0:2e5b82508aea | 33 | int main() { |
kanicolaus | 2:1956c8e08cd3 | 34 | interrupt.fall(&fallInterrupt); |
kanicolaus | 2:1956c8e08cd3 | 35 | interrupt.mode(PullUp); |
kanicolaus | 2:1956c8e08cd3 | 36 | while (1) {} |
kanicolaus | 2:1956c8e08cd3 | 37 | } |