feat(ex04)
This commit is contained in:
parent
9c2a7d7573
commit
5e18ca5a6d
31 changed files with 1791 additions and 0 deletions
51
ex04/include/lib/segment.h
Normal file
51
ex04/include/lib/segment.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef SEGMENT_H
|
||||
#define SEGMENT_H
|
||||
|
||||
#include "lib/mystd.h"
|
||||
|
||||
typedef uint8_t segment_digit;
|
||||
|
||||
typedef enum {
|
||||
DIGIT_NONE = 0,
|
||||
DIGIT_1 = BV((0 + 4)),
|
||||
DIGIT_2 = BV((1 + 4)),
|
||||
DIGIT_3 = BV((2 + 4)),
|
||||
DIGIT_4 = BV((3 + 4)),
|
||||
DIGIT_ALL = DIGIT_1 | DIGIT_2 | DIGIT_3 | DIGIT_4,
|
||||
_DIGIT_MASK = DIGIT_ALL,
|
||||
} segment_mask;
|
||||
|
||||
typedef struct {
|
||||
segment_digit digits[4];
|
||||
segment_mask mask;
|
||||
bool enable;
|
||||
} segment_data;
|
||||
|
||||
#define SEG_0 (0b00111111)
|
||||
#define SEG_1 (0b00000110)
|
||||
#define SEG_2 (0b01011011)
|
||||
#define SEG_3 (0b01001111)
|
||||
#define SEG_4 (0b01100110)
|
||||
#define SEG_5 (0b01101101)
|
||||
#define SEG_6 (0b01111101)
|
||||
#define SEG_7 (0b00000111)
|
||||
#define SEG_8 (0b01111111)
|
||||
#define SEG_9 (0b01101111)
|
||||
|
||||
#define SEG_a (BV(0))
|
||||
#define SEG_b (BV(1))
|
||||
#define SEG_c (BV(2))
|
||||
#define SEG_d (BV(3))
|
||||
#define SEG_e (BV(4))
|
||||
#define SEG_f (BV(5))
|
||||
#define SEG_g (BV(6))
|
||||
#define SEG_dp (BV(7))
|
||||
|
||||
t_error segment_init(void);
|
||||
t_error segment_set_digit(segment_digit data, segment_mask digit);
|
||||
t_error segment_set_mask(segment_mask mask);
|
||||
t_error segment_refresh_display(void);
|
||||
void segment_enable(void);
|
||||
void segment_disable(void);
|
||||
|
||||
#endif /* SEGMENT_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue