#include #include #define SEG_A 0x01 #define SEG_B 0x02 #define SEG_C 0x04 #define SEG_D 0x08 #define SEG_E 0x10 #define SEG_F 0x20 #define SEG_G 0x40 #define SEG_DP 0x80 #define NUM_0 ~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F) #define NUM_1 ~(SEG_B|SEG_C) #define NUM_2 ~(SEG_A|SEG_B|SEG_D|SEG_E|SEG_G) #define NUM_3 ~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_G) #define NUM_4 ~(SEG_B|SEG_C|SEG_F|SEG_G) #define NUM_5 ~(SEG_A|SEG_F|SEG_G|SEG_C|SEG_D) #define NUM_6 ~(SEG_A|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G) #define NUM_7 ~(SEG_A|SEG_B|SEG_C) #define NUM_8 ~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G) #define NUM_9 ~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G) #define NUM_A ~(SEG_A|SEG_B|SEG_C|SEG_E|SEG_F|SEG_G) #define NUM_B ~(SEG_C|SEG_D|SEG_E|SEG_F|SEG_G) #define NUM_C ~(SEG_D|SEG_E|SEG_G) #define NUM_D ~(SEG_G|SEG_B|SEG_C|SEG_D|SEG_E) #define NUM_E ~(SEG_A|SEG_D|SEG_E|SEG_F|SEG_G) #define NUM_F ~(SEG_A|SEG_E|SEG_F|SEG_G) volatile uint8_t mpx_buffer[16] = { NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, NUM_A, NUM_B, NUM_C, NUM_D,NUM_E,NUM_F }; volatile uint8_t mpx_idx=0; #define MPX_DIG0() PORTD |= (1<