Now you can use NC as InterruptIn

Dependencies:   X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Revision:
20:dd8390d615bf
Parent:
17:922c88827e4d
Child:
23:dfb5ccc7b780
diff -r 39ea6bab0e5b -r dd8390d615bf Components/Display/Display_class.h
--- a/Components/Display/Display_class.h	Wed Oct 28 09:28:52 2015 +0000
+++ b/Components/Display/Display_class.h	Wed Oct 28 13:07:59 2015 +0000
@@ -163,194 +163,189 @@
 #ifndef FAST_DISPLAY
  
     Display(DevI2C &i2c, STMPE1600DigiOut &D1,	STMPE1600DigiOut &D2, STMPE1600DigiOut &D3, STMPE1600DigiOut &D4,
-						STMPE1600DigiOut &D_A, STMPE1600DigiOut &D_B, STMPE1600DigiOut &D_C, STMPE1600DigiOut &D_D,
-						STMPE1600DigiOut &D_E, STMPE1600DigiOut &D_F, STMPE1600DigiOut &D_G)
-						: Display_D1(D1), Display_D2(D2), Display_D3(D3), Display_D4(D4),
-							Display_A(D_A), Display_B(D_B), Display_C(D_C), Display_D(D_D), 
- 							Display_E(D_E), Display_F(D_F), Display_G(D_G), dev_i2c(i2c)
-		{
-			pDisplay_DGT[0] = &Display_D1;
-			pDisplay_DGT[1] = &Display_D2;
-			pDisplay_DGT[2] = &Display_D3;
-			pDisplay_DGT[3] = &Display_D4;	
-			pDisplay_SEG[0] = &Display_A;
-			pDisplay_SEG[1] = &Display_B;
-			pDisplay_SEG[2] = &Display_C;
-			pDisplay_SEG[3] = &Display_D;
-			pDisplay_SEG[4] = &Display_E;
-			pDisplay_SEG[5] = &Display_F;
-			pDisplay_SEG[6] = &Display_G;		
+	        STMPE1600DigiOut &D_A, STMPE1600DigiOut &D_B, STMPE1600DigiOut &D_C, STMPE1600DigiOut &D_D,
+	        STMPE1600DigiOut &D_E, STMPE1600DigiOut &D_F, STMPE1600DigiOut &D_G)
+	        : Display_D1(D1), Display_D2(D2), Display_D3(D3), Display_D4(D4),
+	        Display_A(D_A), Display_B(D_B), Display_C(D_C), Display_D(D_D), 
+ 	        Display_E(D_E), Display_F(D_F), Display_G(D_G), dev_i2c(i2c)
+    {
+       pDisplay_DGT[0] = &Display_D1;
+       pDisplay_DGT[1] = &Display_D2;
+       pDisplay_DGT[2] = &Display_D3;
+       pDisplay_DGT[3] = &Display_D4;	
+       pDisplay_SEG[0] = &Display_A;
+       pDisplay_SEG[1] = &Display_B;
+       pDisplay_SEG[2] = &Display_C;
+       pDisplay_SEG[3] = &Display_D;
+       pDisplay_SEG[4] = &Display_E;
+       pDisplay_SEG[5] = &Display_F;
+       pDisplay_SEG[6] = &Display_G;		
 
-			for (int i=0; i<4; i++) { *pDisplay_DGT[i]=1; }
-			for (int i=0; i<7; i++) { *pDisplay_SEG[i]=1;	}		
-		}
+       for (int i=0; i<4; i++) { *pDisplay_DGT[i]=1; }
+       for (int i=0; i<7; i++) { *pDisplay_SEG[i]=1;	}		
+    }
 #else		
     Display(DevI2C &i2c) :  dev_i2c(i2c) {}
 #endif		
-    virtual ~Display() 
-    {
-        //nella classe board ci sara' un puntatore ad un oggetto di tipo Display che verra' creato con una new
-		    //qui devo fare il delete[] del new 			
-    } 
 
 #ifndef FAST_DISPLAY			
- 		void Digits_off (void)  // all 4 digits off
-		{
-			Display_D1=1;
-			Display_D2=1; 
-			Display_D3=1; 
-			Display_D4=1;  			
-		}
+    void Digits_off (void)  // all 4 digits off
+    {
+       Display_D1=1;
+       Display_D2=1; 
+       Display_D3=1; 
+       Display_D4=1;  			
+    }
 
- 		void Digits_on (void)  // all 4 digits on
-		{
-			Display_D1=0;
-			Display_D2=0; 
-			Display_D3=0; 
-			Display_D4=0;  			
-		}
+    void Digits_on (void)  // all 4 digits on
+    {
+       Display_D1=0;
+       Display_D2=0; 
+       Display_D3=0; 
+       Display_D4=0;  			
+    }
 
- 		void Digit_on (int digit)  // digits on
-		{
-			*pDisplay_DGT[digit] = 0;
-		}
+    void Digit_on (int digit)  // digits on
+    {
+       *pDisplay_DGT[digit] = 0;
+    }
 
- 		void Digit_off (int digit)  // digits on
-		{
-			*pDisplay_DGT[digit] = 1;
-		}
+    void Digit_off (int digit)  // digits on
+    {
+       *pDisplay_DGT[digit] = 1;
+    }
 		
-		void Segments_off ()   // all 7 segments off			
-		{
-			Display_A=1;
-			Display_B=1;
-			Display_C=1;
-			Display_D=1;
-			Display_E=1;
-			Display_F=1;			
-			Display_G=1;						
-		}		
+    void Segments_off ()   // all 7 segments off			
+    {
+       Display_A=1;
+       Display_B=1;
+       Display_C=1;
+       Display_D=1;
+       Display_E=1;
+       Display_F=1;			
+       Display_G=1;						
+    }		
 		
-		void Segment_off (int seg)   // segment off			
-		{
-			*pDisplay_SEG[seg] = 1;
-		}
+    void Segment_off (int seg)   // segment off			
+    {
+       *pDisplay_SEG[seg] = 1;
+    }
 		
-		void Segment_on (int seg)   // segment on			
-		{
-			*pDisplay_SEG[seg] = 0;
-		}
+    void Segment_on (int seg)   // segment on			
+    {
+       *pDisplay_SEG[seg] = 0;
+    }
 		
 		
-		void DisplayString (char str[4])
-		{
-    int i;
-    const char *pc;
+    void DisplayString (char str[4])
+    {
+       int i;
+       const char *pc;
  
-			for( i=0, pc=str; i<4 && *pc!=0 ; i++, pc++){
-        _V2_Set7Segment( ascii_to_display_lut[(uint8_t)*pc], i);
-        if( *(pc+1)== '.'){
+       for( i=0, pc=str; i<4 && *pc!=0 ; i++, pc++){
+          _V2_Set7Segment( ascii_to_display_lut[(uint8_t)*pc], i);
+          if( *(pc+1)== '.'){
             pc++;
-        }
-				 wait_ms(DISPLAY_DELAY);
-				 Digits_off();
-			}			
-		}
+          }
+          wait_ms(DISPLAY_DELAY);
+          Digits_off();
+       }			
+    }
 				
  
-   void _V2_Set7Segment( int Leds, int digit ){
-		  //Digits_off();
-			Segments_off();					  // 7 seg off */
-		 int mask=1;
-		  for (int i=0; i<7; i++) { 
-				if (Leds & mask) Segment_on(i);
-				mask = mask<<1;
-			}		 
-		  Digit_on(digit);
-		}
+    void _V2_Set7Segment( int Leds, int digit ){
+       //Digits_off();
+       Segments_off();	// 7 seg off */
+       int mask=1;
+       for (int i=0; i<7; i++) { 
+          if (Leds & mask) Segment_on(i);
+          mask = mask<<1;
+       }		 
+       Digit_on(digit);
+    }
 
 
 #else
 
-		void DisplayDigit (char *val, char dgt)	
-		{
-		uint8_t data[2];
-		uint16_t *pdata = (uint16_t*)data;				
-      dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7					
-		  *pdata = *pdata | (uint16_t)0x0780;				// all digits off
-			dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7		 
+    void DisplayDigit (char *val, char dgt)	
+    {
+       uint8_t data[2];
+       uint16_t *pdata = (uint16_t*)data;				
+       dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2); //  GPSR_0_7					
+       *pdata = *pdata | (uint16_t)0x0780; // all digits off
+       dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2); //  GPSR_0_7		 
 			
-      _V2_Set7Segment( ascii_to_display_lut[(uint8_t)*val], dgt);						
-		}
+       _V2_Set7Segment( ascii_to_display_lut[(uint8_t)*val], dgt);						
+    }
 		
-		void DisplayString (char str[4], char strlen)
-		{
-    int i, dgt;
-    const char *pc;
-		uint8_t data[2];
-		uint16_t *pdata = (uint16_t*)data;	
+    void DisplayString (char str[4], char strlen)
+    {
+       int i, dgt;
+       const char *pc;
+       uint8_t data[2];
+       uint16_t *pdata = (uint16_t*)data;	
 			
- //     dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7					
-//		  *pdata = *pdata | (uint16_t)0x0780;				// all digits off
-//			dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7		 
+//     dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7					
+//     *pdata = *pdata | (uint16_t)0x0780;				// all digits off
+//     dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7		 
 			
-			for(i=0, dgt=4-strlen, pc=str; i<strlen && *pc!=0; i++, pc++, dgt++){
-        _V2_Set7Segment( ascii_to_display_lut[(uint8_t)*pc], dgt);
-        if( *(pc+1)== '.'){
-            pc++;
-        }
-				wait_ms(DISPLAY_DELAY);
-				dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7
-		    *pdata = *pdata | (uint16_t)0x0780;				// all digits off
-			  dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7	
-			}			
-		}
+       for(i=0, dgt=4-strlen, pc=str; i<strlen && *pc!=0; i++, pc++, dgt++){
+       _V2_Set7Segment( ascii_to_display_lut[(uint8_t)*pc], dgt);
+       if( *(pc+1)== '.'){
+          pc++;
+       }
+       wait_ms(DISPLAY_DELAY);
+       dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7
+       *pdata = *pdata | (uint16_t)0x0780;				// all digits off
+       dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7	
+       }			
+    }
 				
  
-   void _V2_Set7Segment( int Leds, int digit ){
-		  //Digits_off();
+    void _V2_Set7Segment( int Leds, int digit ){
+       //Digits_off();
 		 
-		  uint16_t dgt;
-		  dgt = 1<<digit;
-		  dgt = ((uint16_t)dgt)<<7;
-		  dgt = ~dgt;	
-			uint8_t data[2];
-			uint16_t *pdata = (uint16_t*)data;			 
+       uint16_t dgt;
+       dgt = 1<<digit;
+       dgt = ((uint16_t)dgt)<<7;
+       dgt = ~dgt;	
+       uint8_t data[2];
+       uint16_t *pdata = (uint16_t*)data;			 
 
 		 
-			/* set the exppinname state to lvl */
-			dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7  		 
-		  *pdata = *pdata  | (uint16_t)0x007F;      // 7 segments off
-			dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7		 
+       /* set the exppinname state to lvl */
+       dev_i2c.i2c_read(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7  		 
+       *pdata = *pdata  | (uint16_t)0x007F;      // 7 segments off
+       dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7		 
 		 
-		 int mask=1;
-		  for (int i=0; i<7; i++) { 
-				if (Leds & mask) *pdata = *pdata & ~(uint16_t)mask;  
-				mask = mask<<1;
-			}		 
-			*pdata = *pdata & dgt;
-			dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7		 			
-		}
+       int mask=1;
+       for (int i=0; i<7; i++) { 
+          if (Leds & mask) *pdata = *pdata & ~(uint16_t)mask;  
+          mask = mask<<1;
+       }		 
+       *pdata = *pdata & dgt;
+       dev_i2c.i2c_write(data, (uint8_t)STMPE1600_DEF_DEVICE_ADDRESS, (uint8_t)GPSR_0_7, 2);		//  GPSR_0_7		 			
+    }
 #endif		
 		
 		
  private:		
 		
 #ifndef FAST_DISPLAY
-		STMPE1600DigiOut &Display_D1;
-		STMPE1600DigiOut &Display_D2;
-		STMPE1600DigiOut &Display_D3;
-		STMPE1600DigiOut &Display_D4;
-		STMPE1600DigiOut *pDisplay_DGT[4];		// the 4 display digits
+    STMPE1600DigiOut &Display_D1;
+    STMPE1600DigiOut &Display_D2;
+    STMPE1600DigiOut &Display_D3;
+    STMPE1600DigiOut &Display_D4;
+    STMPE1600DigiOut *pDisplay_DGT[4];		// the 4 display digits
 		
- 		STMPE1600DigiOut &Display_A;
- 		STMPE1600DigiOut &Display_B;
- 		STMPE1600DigiOut &Display_C;
- 		STMPE1600DigiOut &Display_D;
- 		STMPE1600DigiOut &Display_E; 
-		STMPE1600DigiOut &Display_F;
- 		STMPE1600DigiOut &Display_G; 
-		STMPE1600DigiOut *pDisplay_SEG[7];		// the 7 digit segmments
+    STMPE1600DigiOut &Display_A;
+    STMPE1600DigiOut &Display_B;
+    STMPE1600DigiOut &Display_C;
+    STMPE1600DigiOut &Display_D;
+    STMPE1600DigiOut &Display_E; 
+    STMPE1600DigiOut &Display_F;
+    STMPE1600DigiOut &Display_G; 
+    STMPE1600DigiOut *pDisplay_SEG[7];		// the 7 digit segmments
 #endif
     DevI2C           &dev_i2c; 		
 };