OSDN Git Service

[General] Initial files.
[openi2cradio/OpenI2CRadio.git] / iodef.h
1 /*
2  * OpenI2CRADIO
3  * I/O Port defines.
4  * (C) 2013-06-10 K.Ohta <whatisthis.sowhat ai gmail.com>
5  * License: GPL2
6  */
7
8 #ifndef IODEF_H
9 #define IODEF_H
10
11 #ifdef  __cplusplus
12 extern "C" {
13 #endif
14
15
16 /*
17  * MAP OF IOPORT
18  * PORTA/B/C USED.
19  * PORTA: RA2-RA5 : READ
20  *        RA1 : SLOT D(OUT)
21  *        RA0 : ADC(IN)
22  *        RA6-RA7 : CLOCK
23  * PORTB: RB4-RB5 : RESERVED
24  *        RB6-RB7 : FOR ICSP
25  *        RB3 : DEL / BAND
26  *        RB2 : FUNC
27  *        RB1 : Light
28  *        RB0 : Light Out
29  * PORTC  RC0 : LED
30  *        RC1 : SLOT A
31  *        RC2 : SLOT B
32  *        RC5 : SLOT C
33  *        RC3-RC4 : SCL/SDA
34  *        RC6-RC7 : USART
35  */
36
37 #define TRIS_A_VAL 0b11111101
38 #define AN_A_VAL 0b00000001
39 #define TRIS_B_VAL 0b11111110
40 #define AN_B_VAL 0b00000000
41 #define TRIS_C_VAL_O 0b11000000 /* FOR I2C-WRITE */
42 #define TRIS_C_VAL_I 0b11011000 /* FOR I2C-WRITE */
43 #define AN_C_VAL 0b00000000
44
45 typedef  union {
46     struct {
47     unsigned BIT0A:1;
48     unsigned BIT1A:1;
49     unsigned BIT2A:1;
50     unsigned BIT3A:1;
51
52     unsigned BIT0B:1;
53     unsigned BIT1B:1;
54     unsigned BIT2B:1;
55     unsigned BIT3B:1;
56
57     unsigned BIT0C:1;
58     unsigned BIT1C:1;
59     unsigned BIT2C:1;
60     unsigned BIT3C:1;
61
62     unsigned BIT0D:1;
63     unsigned BIT1D:1;
64     unsigned BIT2D:1;
65     unsigned BIT3D:1;
66
67     /*
68      * special keys
69      */
70     unsigned BIT0F:1;
71     unsigned BIT1F:1;
72     unsigned BIT2F:1;
73     unsigned BIT3F:1;
74     unsigned :1;
75     unsigned :1;
76     unsigned :1;
77     unsigned :1;
78     };
79     unsigned char byte[3];
80 } keyin_defs;
81
82 enum {
83     charcode_null = 0,
84     charcode_1,
85     charcode_2,
86     charcode_3,
87     charcode_4,
88     charcode_5,
89     charcode_6,
90     charcode_7,
91     charcode_8,
92     charcode_9,
93     charcode_a,
94     charcode_b,
95     charcode_c,
96     charcode_d,
97     charcode_e,
98     charcode_f,
99     charcode_0,
100     charcode_s0,
101     charcode_s1,
102     charcode_s2,
103     charcode_s3,
104 };
105
106 extern keyin_defs keyin_old[2];
107 extern keyin_defs keyin_now;
108 extern char keyin_fifo[16];
109 extern char keyin_nowp;
110 extern char keyin_counter;
111
112 extern unsigned char readkey_compare(void);
113 extern void readkey_io(void);
114 extern void push_keyinfifo(char b);
115 extern char pop_keyinfifo(void);
116 extern void keyin_ioinit(void);
117 extern void keyin_init(void);
118
119
120
121 #ifdef  __cplusplus
122 }
123 #endif
124
125 #endif  /* IODEF_H */
126