blob: 34348329ec5179718e2ce754a734166ebf69d73c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
/*
* (C) Copyright 2003, Li-Pro.Net <www.li-pro.net>
* Stephan Linz <linz@li-pro.net>
*
* SPDX-License-Identifier: GPL-2.0+
*
* common/sevenseg.h
*
* NIOS PIO based seven segment led support functions
*/
#ifndef __DK1S10_SEVENSEG_H__
#define __DK1S10_SEVENSEG_H__
#ifdef CONFIG_SEVENSEG
/*
* 15 8 7 0
* |-----------------------|--------|
* | controll value | value |
* ----------------------------------
*/
#define SEVENSEG_RAW (int)(0) /* write out byte value (hex) */
#define SEVENSEG_OFF (int)( 1 << 8) /* display switch off */
#define SEVENSEG_SET_DPL (int)( 2 << 8) /* set dp low nibble */
#define SEVENSEG_SET_DPH (int)( 3 << 8) /* set dp high nibble */
#define SEVENSEG_RES_DPL (int)( 4 << 8) /* reset dp low nibble */
#define SEVENSEG_RES_DPH (int)( 5 << 8) /* reset dp high nibble */
#define SEVENSEG_TOG_DPL (int)( 6 << 8) /* toggle dp low nibble */
#define SEVENSEG_TOG_DPH (int)( 7 << 8) /* toggle dp high nibble */
#define SEVENSEG_LO (int)( 8 << 8) /* write out low nibble only */
#define SEVENSEG_HI (int)( 9 << 8) /* write out high nibble only */
#define SEVENSEG_STR (int)(10 << 8) /* write out a string */
#define SEVENSEG_MASK_VAL (0xff) /* only used by SEVENSEG_RAW */
#define SEVENSEG_MASK_CTRL (~SEVENSEG_MASK_VAL)
#ifdef SEVENSEG_DIGIT_HI_LO_EQUAL
#define SEVENSEG_DIGITS_0 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_F )
#define SEVENSEG_DIGITS_1 ( SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C )
#define SEVENSEG_DIGITS_2 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_3 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_4 ( SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_5 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_6 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_7 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C )
#define SEVENSEG_DIGITS_8 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_9 ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_A ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_B ( SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_C ( SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_D ( SEVENSEG_DIGIT_B \
| SEVENSEG_DIGIT_C \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_E ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_D \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#define SEVENSEG_DIGITS_F ( SEVENSEG_DIGIT_A \
| SEVENSEG_DIGIT_E \
| SEVENSEG_DIGIT_F \
| SEVENSEG_DIGIT_G )
#else /* !SEVENSEG_DIGIT_HI_LO_EQUAL */
#error SEVENSEG: different pin asssignments not supported
#endif
void sevenseg_set(int value);
#endif /* CONFIG_SEVENSEG */
#endif /* __DK1S10_SEVENSEG_H__ */
|