
lab 5a
Dependencies: mbed mbed-rtos tsi_sensor SLCD
seven_segment.h
- Committer:
- teajaypierce
- Date:
- 2020-05-03
- Revision:
- 2:cad0ec8e29a5
- Parent:
- 0:78b84e1ce9df
File content as of revision 2:cad0ec8e29a5:
#ifndef SEVEN_SEGMENT_H #define SEVEN_SEGMENT_H #ifndef BIT #define BIT(N) (1 << (N)) #endif /* This file contains routines for controlling a single seven segment */ /* display. */ /* The assumption is of a common cathode display where each anode is */ /* individually controlled by an active-high signal from a port pin. */ /* The further assumption is that the control will be through an */ /* eight-bit BusOut structure where the segment control bits are */ /* defined from most significant to least significant as: */ /* DP, G, F, E, D, C, B, A */ /* AAA F B F B F B GGG E C E C E C DP DDD DP */ /* #define SEG_A BIT(0) #define SEG_B BIT(1) #define SEG_C BIT(2) #define SEG_D BIT(3) #define SEG_E BIT(4) #define SEG_F BIT(5) #define SEG_G BIT(6) #define SEG_DP BIT(7) int seven_segment_pattern [16]= { (SEG_A+SEG_B+SEG_C+SEG_D+SEG_E+SEG_F), (SEG_B+SEG_C), (SEG_A+SEG_B+SEG_D+SEG_E+SEG_G), (SEG_A+SEG_B+SEG_C+SEG_D+SEG_G), (SEG_B+SEG_C+SEG_F+SEG_G), (SEG_A+SEG_C+SEG_D+SEG_F+SEG_G), (SEG_A+SEG_C+SEG_D+SEG_E+SEG_F+SEG_G), (SEG_A+SEG_B+SEG_C), (SEG_A+SEG_B+SEG_C+SEG_D+SEG_E+SEG_F+SEG_G), (SEG_A+SEG_B+SEG_C+SEG_D+SEG_F+SEG_G), (SEG_A+SEG_B+SEG_C+SEG_E+SEG_F+SEG_G), (SEG_C+SEG_D+SEG_E+SEG_F+SEG_G), (SEG_ASEG_D+SEG_E+SEG_F), (SEG_B+SEG_C+SEG_D+SEG_E+SEG_G), (SEG_A+SEG_D+SEG_E+SEG_F+SEG_G), (SEG_A+SEG_E+SEG_F+SEG_G) }; */ int seven_segment_pattern [16]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d, E, F */ //BusOut seven_segment(SEVEN_SEGMENT_A,SEVEN_SEGMENT_B,SEVEN_SEGMENT_C,SEVEN_SEGMENT_D,SEVEN_SEGMENT_E,SEVEN_SEGMENT_F,SEVEN_SEGMENT_G,SEVEN_SEGMENT_DP); BusOut seven_segment(NC, NC, NC, NC, NC, NC, NC, NC); int seven_segment_find_pattern(char ss_out) { if((ss_out >= 0) && (ss_out <=15)) { return(seven_segment_pattern[ss_out]); } else if((ss_out >= '0') && (ss_out <='9')) { return(seven_segment_pattern[ss_out-'0']); } else if((ss_out >= 'A') && (ss_out <='F')) { return(seven_segment_pattern[ss_out-'A'+10]); } else if((ss_out >= 'a') && (ss_out <='f')) { return(seven_segment_pattern[ss_out-'a'+10]); } else if(ss_out =='*') { return(seven_segment_pattern[0x0E]); } else if(ss_out =='#') { return(seven_segment_pattern[0x0F]); } else { return(0); } } /* end of seven_segment_output() */ int seven_segment_output(char ss_out) { int pattern; pattern=seven_segment_find_pattern(ss_out); seven_segment=pattern; return(pattern); } /* end of seven_segment_output() */ #endif /* #ifndef SEVEN_SEGMENT_H */