Now you can use NC as InterruptIn

Dependencies:   X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Revision:
8:f943a1fca15f
Parent:
7:2dc81120c917
Child:
10:4954b09b72d8
--- a/Components/STMPE1600/stmpe1600_class.h	Fri Sep 25 12:12:51 2015 +0200
+++ b/Components/STMPE1600/stmpe1600_class.h	Tue Sep 29 14:50:15 2015 +0200
@@ -40,8 +40,8 @@
 #include    "mbed.h"
 #include		<assert.h>
 
-#define STMPE1600_DEF_DEVICE_ADDRESS  (uint8_t)0x42*2   // in 7 bits I2C format
-#define STMPE1600_DEF_DIGIOUT_LVL      0
+#define STMPE1600_DEF_DEVICE_ADDRESS  (uint8_t)0x42*2   
+#define STMPE1600_DEF_DIGIOUT_LVL      1
 
 /**  STMPE1600 registr map **/
 #define VersionId			(uint8_t)0x02
@@ -107,8 +107,8 @@
 			/* set the exppinname state to lvl */
 			dev_i2c.i2c_read(data, expdevaddr, GPSR_0_7, 1);
 			dev_i2c.i2c_read(&data[1], expdevaddr, GPSR_8_15, 1);			
-			*(uint16_t*)data = *(uint16_t*)data & (~(1<<(uint16_t)exppinname));  // set pin mask 			
-			if (lvl) *(uint16_t*)data = *(uint16_t*)data | ( 1<<(uint16_t)exppinname);
+			*(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, 1);
 			dev_i2c.i2c_write(&data[1], expdevaddr, GPSR_8_15, 1);			
 		}
@@ -127,13 +127,13 @@
 class STMPE1600DigiIn {
 	
  public: 
-    STMPE1600DigiIn (DevI2C &i2c, ExpGpioPinName inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS): dev_i2c(i2c), expdevaddr(DevAddr), exppinname(inpinname) 
+    STMPE1600DigiIn (DevI2C &i2c, ExpGpioPinName inpinname, uint8_t DevAddr=STMPE1600_DEF_DEVICE_ADDRESS*2): dev_i2c(i2c), expdevaddr(DevAddr*2), exppinname(inpinname) 
 		{
 			uint8_t data[2];
 			/* set the exppinname as input pin direction */
 			dev_i2c.i2c_read(data, expdevaddr, GPDR_0_7, 1);
 			dev_i2c.i2c_read(&data[1], expdevaddr, GPDR_8_15, 1);			
-			*(uint16_t*)data = *(uint16_t*)data & (~(1<<(uint16_t)exppinname));  // set gopio as in			
+			*(uint16_t*)data = *(uint16_t*)data & (uint16_t)(~(1<<(uint16_t)exppinname));  // set gopio as in			
 			dev_i2c.i2c_write(data, expdevaddr, GPDR_0_7, 1);
 			dev_i2c.i2c_write(&data[1], expdevaddr, GPDR_8_15, 1);						
 		}         
@@ -143,7 +143,7 @@
 			/* read the exppinname */
 			dev_i2c.i2c_read(data, expdevaddr, GPMR_0_7, 1);
 			dev_i2c.i2c_read(&data[1], expdevaddr, GPMR_8_15, 1);			
-			*(uint16_t*)data = *(uint16_t*)data & (1<<(uint16_t)exppinname);  // mask the in gpio
+			*(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;
 		}