Now you can use NC as InterruptIn
Fork of X_NUCLEO_6180XA1 by
Diff: Components/Display/Display_class.h
- Revision:
- 23:dfb5ccc7b780
- Parent:
- 20:dd8390d615bf
- Child:
- 28:7c9031e96c22
--- a/Components/Display/Display_class.h Wed Oct 28 14:56:22 2015 +0000 +++ b/Components/Display/Display_class.h Fri Oct 30 11:35:36 2015 +0100 @@ -163,27 +163,26 @@ #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 @@ -242,10 +241,12 @@ int i; const char *pc; - for( i=0, pc=str; i<4 && *pc!=0 ; i++, 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)== '.'){ - pc++; + if( *(pc+1)== '.') + { + pc++; } wait_ms(DISPLAY_DELAY); Digits_off(); @@ -253,11 +254,13 @@ } - void _V2_Set7Segment( int Leds, int digit ){ + void _V2_Set7Segment( int Leds, int digit ) + { //Digits_off(); - Segments_off(); // 7 seg off */ + Segments_off(); // 7 seg off */ int mask=1; - for (int i=0; i<7; i++) { + for (int i=0; i<7; i++) + { if (Leds & mask) Segment_on(i); mask = mask<<1; } @@ -271,9 +274,9 @@ { 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 _V2_Set7Segment( ascii_to_display_lut[(uint8_t)*val], dgt); } @@ -285,26 +288,28 @@ 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 ){ + void _V2_Set7Segment( int Leds, int digit ) + { //Digits_off(); - uint16_t dgt; dgt = 1<<digit; dgt = ((uint16_t)dgt)<<7; @@ -319,35 +324,36 @@ 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++) { + 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; + DevI2C &dev_i2c; }; #ifdef __cplusplus