Now you can use NC as InterruptIn
Fork of X_NUCLEO_6180XA1 by
Diff: Components/STMPE1600/stmpe1600_class.h
- Revision:
- 23:dfb5ccc7b780
- Parent:
- 16:0d4776564733
- Child:
- 33:1573db91352c
--- a/Components/STMPE1600/stmpe1600_class.h Wed Oct 28 14:56:22 2015 +0000 +++ b/Components/STMPE1600/stmpe1600_class.h Fri Oct 30 11:35:36 2015 +0100 @@ -98,16 +98,17 @@ dev_i2c.i2c_write(data, expdevaddr, GPDR_0_7, 1); dev_i2c.i2c_write(&data[1], expdevaddr, GPDR_8_15, 1); write(lvl); - } + } - void write (int lvl) { - uint8_t data[2]; - /* set the exppinname state to lvl */ - dev_i2c.i2c_read(data, expdevaddr, GPSR_0_7, 2); - *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t)exppinname)); // set pin mask - if (lvl) *(uint16_t*)data = *(uint16_t*)data | (uint16_t)(1<<(uint16_t)exppinname); - dev_i2c.i2c_write(data, expdevaddr, GPSR_0_7, 2); - } + void write (int lvl) + { + uint8_t data[2]; + /* set the exppinname state to lvl */ + dev_i2c.i2c_read(data, expdevaddr, GPSR_0_7, 2); + *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t)exppinname)); // set pin mask + if (lvl) *(uint16_t*)data = *(uint16_t*)data | (uint16_t)(1<<(uint16_t)exppinname); + dev_i2c.i2c_write(data, expdevaddr, GPSR_0_7, 2); + } STMPE1600DigiOut& operator=(int lvl) { @@ -124,23 +125,24 @@ class STMPE1600DigiIn { public: - STMPE1600DigiIn (DevI2C &i2c, ExpGpioPinName inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS*2): dev_i2c(i2c), expdevaddr(DevAddr), exppinname(inpinname) - { - uint8_t data[2]; - /* set the exppinname as input pin direction */ - dev_i2c.i2c_read(data, expdevaddr, GPDR_0_7, 2); - *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t)exppinname)); // set gpio as in - dev_i2c.i2c_write(data, expdevaddr, GPDR_0_7, 2); - } + STMPE1600DigiIn (DevI2C &i2c, ExpGpioPinName inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS): dev_i2c(i2c), expdevaddr(DevAddr), exppinname(inpinname) + { + uint8_t data[2]; + /* set the exppinname as input pin direction */ + dev_i2c.i2c_read(data, expdevaddr, GPDR_0_7, 2); + *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t)exppinname)); // set gpio as in + dev_i2c.i2c_write(data, expdevaddr, GPDR_0_7, 2); + } - bool read () { - uint8_t data[2]; - /* read the exppinname */ - dev_i2c.i2c_read(data, expdevaddr, GPMR_0_7, 2); - *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(1<<(uint16_t)exppinname); // mask the in gpio - if (data[0] || data[1]) return 1; - return 0; - } + bool read () + { + uint8_t data[2]; + /* read the exppinname */ + dev_i2c.i2c_read(data, expdevaddr, GPMR_0_7, 2); + *(uint16_t*)data = *(uint16_t*)data & (uint16_t)(1<<(uint16_t)exppinname); // mask the in gpio + if (data[0] || data[1]) return 1; + return 0; + } operator int() { @@ -158,53 +160,55 @@ class STMPE1600 { public: - STMPE1600 (DevI2C &i2c, - ExpGpioPinDirection GPDR0, ExpGpioPinDirection GPDR1, ExpGpioPinDirection GPDR2, - ExpGpioPinDirection GPDR3, ExpGpioPinDirection GPDR4, ExpGpioPinDirection GPDR5, - ExpGpioPinDirection GPDR6, ExpGpioPinDirection GPDR7, ExpGpioPinDirection GPDR8, - ExpGpioPinDirection GPDR9, ExpGpioPinDirection GPDR10, ExpGpioPinDirection GPDR11, - ExpGpioPinDirection GPDR12, ExpGpioPinDirection GPDR13, ExpGpioPinDirection GPDR14, ExpGpioPinDirection GPDR15, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS ) :dev_i2c(i2c) + STMPE1600 (DevI2C &i2c, ExpGpioPinDirection GPDR0, ExpGpioPinDirection GPDR1, ExpGpioPinDirection GPDR2, + ExpGpioPinDirection GPDR3, ExpGpioPinDirection GPDR4, ExpGpioPinDirection GPDR5, + ExpGpioPinDirection GPDR6, ExpGpioPinDirection GPDR7, ExpGpioPinDirection GPDR8, + ExpGpioPinDirection GPDR9, ExpGpioPinDirection GPDR10, ExpGpioPinDirection GPDR11, + ExpGpioPinDirection GPDR12, ExpGpioPinDirection GPDR13, ExpGpioPinDirection GPDR14, + ExpGpioPinDirection GPDR15, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS ) :dev_i2c(i2c) - { - dev_i2c = i2c; - expdevaddr = DevAddr; - GPDR0_15 = (uint16_t)0; // gpio dir all IN - GPSR0_15 = (uint16_t)0x0ffff; // gpio status all 1 - if (GPDR0 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0001; - if (GPDR1 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0002; - if (GPDR2 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0004; - if (GPDR3 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0008; - if (GPDR4 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0010; - if (GPDR5 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0020; - if (GPDR6 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0040; - if (GPDR7 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0080; - if (GPDR8 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0100; - if (GPDR9 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0200; - if (GPDR10 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0400; - if (GPDR11 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0800; - if (GPDR12 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x1000; - if (GPDR13 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x2000; - if (GPDR14 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x4000; - if (GPDR15 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x8000; - dev_i2c.i2c_write((uint8_t*)&GPDR0_15, expdevaddr, GPDR_0_7, 2); - dev_i2c.i2c_write((uint8_t*)&GPSR0_15, expdevaddr, GPSR_0_7, 2); - } + { + dev_i2c = i2c; + expdevaddr = DevAddr; + GPDR0_15 = (uint16_t)0; // gpio dir all IN + GPSR0_15 = (uint16_t)0x0ffff; // gpio status all 1 + if (GPDR0 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0001; + if (GPDR1 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0002; + if (GPDR2 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0004; + if (GPDR3 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0008; + if (GPDR4 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0010; + if (GPDR5 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0020; + if (GPDR6 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0040; + if (GPDR7 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0080; + if (GPDR8 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0100; + if (GPDR9 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0200; + if (GPDR10 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0400; + if (GPDR11 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x0800; + if (GPDR12 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x1000; + if (GPDR13 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x2000; + if (GPDR14 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x4000; + if (GPDR15 == OUTPUT) GPDR0_15 = GPDR0_15 | (uint16_t)0x8000; + dev_i2c.i2c_write((uint8_t*)&GPDR0_15, expdevaddr, GPDR_0_7, 2); + dev_i2c.i2c_write((uint8_t*)&GPSR0_15, expdevaddr, GPSR_0_7, 2); + } - void readGPSR0_15 (uint16_t * gpsr0_15){ - dev_i2c.i2c_read((uint8_t*)gpsr0_15, expdevaddr, GPSR_0_7, 2); - GPSR0_15 = gpsr0_15; - } + void readGPSR0_15 (uint16_t * gpsr0_15) + { + dev_i2c.i2c_read((uint8_t*)gpsr0_15, expdevaddr, GPSR_0_7, 2); + GPSR0_15 = gpsr0_15; + } - void writeGPSR0_15 (uint16_t *gpsr0_15){ - dev_i2c.i2c_write((uint8_t*)*gpsr0_15, expdevaddr, GPSR_0_7, 2); - GPSR0_15 = *gpsr0_15; - } + void writeGPSR0_15 (uint16_t *gpsr0_15) + { + dev_i2c.i2c_write((uint8_t*)*gpsr0_15, expdevaddr, GPSR_0_7, 2); + GPSR0_15 = *gpsr0_15; + } private: - DevI2C &dev_i2c; - uint16_t GPDR0_15; - uint16_t GPSR0_15; - uint8_t expdevaddr; - }; + DevI2C &dev_i2c; + uint16_t GPDR0_15; + uint16_t GPSR0_15; + uint8_t expdevaddr; +}; */ #endif // __STMPE1600_CLASS