Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ST_INTERFACES X_NUCLEO_COMMON
Dependents: Ultrasound_And_IMU
Fork of X_NUCLEO_6180XA1 by
Diff: Components/Display/Display_class.h
- Revision:
- 20:dd8390d615bf
- Parent:
- 17:922c88827e4d
- Child:
- 23:dfb5ccc7b780
--- 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;
};
