Snake works! Scoreboard is fucky.
This commit is contained in:
67
08-74HC595-Snake/7Segment.h
Normal file
67
08-74HC595-Snake/7Segment.h
Normal file
@@ -0,0 +1,67 @@
|
||||
#ifndef _7SEGMENT_H_
|
||||
#define _7SEGMENT_H_
|
||||
|
||||
#define SEG_A 1
|
||||
#define SEG_B 1 << 1
|
||||
#define SEG_C 1 << 2
|
||||
#define SEG_D 1 << 3
|
||||
#define SEG_E 1 << 4
|
||||
#define SEG_F 1 << 5
|
||||
#define SEG_G 1 << 6
|
||||
#define SEG_DP 1 << 7
|
||||
|
||||
// 3, 5, A, F don't properly handle segment D (bottom). Not sure why.
|
||||
// Other digits that include the bottom segment (like 2, 0, 8) and that don't include it
|
||||
// (like 7, 9, 4) work fine.
|
||||
|
||||
#define CHAR_7SEG_0 (uint8_t) ~(SEG_DP | SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F)
|
||||
#define CHAR_7SEG_1 (uint8_t) ~(SEG_DP | SEG_B | SEG_C)
|
||||
#define CHAR_7SEG_2 (uint8_t) ~(SEG_DP | SEG_A | SEG_B | SEG_G | SEG_E | SEG_D)
|
||||
#define CHAR_7SEG_3 (uint8_t) ~(SEG_DP | SEG_A | SEG_B | SEG_C | SEG_D | SEG_G )
|
||||
#define CHAR_7SEG_4 (uint8_t) ~(SEG_DP | SEG_F | SEG_G | SEG_B | SEG_C)
|
||||
#define CHAR_7SEG_5 (uint8_t) ~(SEG_DP | SEG_A | SEG_F | SEG_G | SEG_C | SEG_D)
|
||||
#define CHAR_7SEG_6 (uint8_t) ~(SEG_DP | SEG_A | SEG_F | SEG_E | SEG_D | SEG_C | SEG_G)
|
||||
#define CHAR_7SEG_7 (uint8_t) ~(SEG_DP | SEG_A | SEG_B | SEG_C)
|
||||
#define CHAR_7SEG_8 (uint8_t) ~(SEG_DP | SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G)
|
||||
#define CHAR_7SEG_9 (uint8_t) ~(SEG_DP | SEG_A | SEG_B | SEG_C | SEG_F | SEG_G)
|
||||
|
||||
#define CHAR_7SEG_A (uint8_t) ~(SEG_DP | SEG_A | SEG_B | SEG_C | SEG_E | SEG_F | SEG_G)
|
||||
#define CHAR_7SEG_B (uint8_t) ~(SEG_DP | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G)
|
||||
#define CHAR_7SEG_C (uint8_t) ~(SEG_DP | SEG_A | SEG_D | SEG_E | SEG_F)
|
||||
#define CHAR_7SEG_D (uint8_t) ~(SEG_DP | SEG_C | SEG_D | SEG_E | SEG_B | SEG_G)
|
||||
#define CHAR_7SEG_E (uint8_t) ~(SEG_DP | SEG_A | SEG_D | SEG_E | SEG_F | SEG_G)
|
||||
#define CHAR_7SEG_F (uint8_t) ~(SEG_DP | SEG_A | SEG_E | SEG_F | SEG_G)
|
||||
#define CHAR_7SEG_L (uint8_t) ~(SEG_D | SEG_E | SEG_F)
|
||||
#define CHAR_7SEG_DP (uint8_t) ~SEG_DP
|
||||
|
||||
|
||||
/* #define CHAR_7SEG_0 0xC0 // 0b11000000 */
|
||||
/* #define CHAR_7SEG_1 0xF9 // 0b11111001 */
|
||||
/* #define CHAR_7SEG_2 0xA4 // 0b10100100 */
|
||||
/* #define CHAR_7SEG_3 0xB0 // 0b10110000 */
|
||||
/* #define CHAR_7SEG_4 0x99 // 0b10011001 */
|
||||
/* #define CHAR_7SEG_5 0x92 // 0b10010010 */
|
||||
/* #define CHAR_7SEG_6 0x82 // 0b10000010 */
|
||||
/* #define CHAR_7SEG_7 0xF8 // 0b11111000 */
|
||||
/* #define CHAR_7SEG_8 0x80 // 0b10000000 */
|
||||
/* #define CHAR_7SEG_9 0x90 // 0b10010000 */
|
||||
/* #define CHAR_7SEG_A 0x88 // 0b10001000 */
|
||||
/* #define CHAR_7SEG_B 0x83 // 0b10000011 */
|
||||
/* #define CHAR_7SEG_C 0xC6 // 0b11000110 */
|
||||
/* #define CHAR_7SEG_D 0xA1 // 0b10100001 */
|
||||
/* #define CHAR_7SEG_E 0x86 // 0b10000110 */
|
||||
/* #define CHAR_7SEG_F 0x8E // 0b10001110 */
|
||||
/* #define CHAR_7SEG_DP 0x80 // 0b10000000 */
|
||||
/* #define CHAR_7SEG_OFF 0x00 // 0b00000000 */
|
||||
|
||||
#define PIN_7SEGMENT_DIGIT1 7
|
||||
#define PIN_7SEGMENT_DIGIT2 6
|
||||
#define PIN_7SEGMENT_DIGIT3 5
|
||||
#define PIN_7SEGMENT_DIGIT4 4
|
||||
|
||||
int init7Segment(void);
|
||||
void test7Segment(void);
|
||||
int select7SegDisplay(uint8_t num);
|
||||
|
||||
|
||||
#endif // _7SEGMENT_H_
|
||||
Reference in New Issue
Block a user