4 * Created on: 2010/11/27
11 typedef unsigned char u1;
12 typedef unsigned int short u2;
38 typedef enum { //
\93à
\95\94\83N
\83\8d\83b
\83N20MHz
39 BitRate_type_br4800 = 129, // CKS=00
40 BitRate_type_br9600 = 64, // CKS=00
41 BitRate_type_br19200 = 32, // CKS=00
42 BitRate_type_br38400 = 15 // CKS=00
47 typedef enum { //
\93à
\95\94\83N
\83\8d\83b
\83N25MHz
48 BitRate_type_br4800 = 162, // CKS=00
49 BitRate_type_br9600 = 80, // CKS=00
50 BitRate_type_br19200 = 40, // CKS=00
51 BitRate_type_br38400 = 19 // CKS=00
62 u1 CA :1; // 0=
\92²
\95à
\93¯
\8aú 1=
\83N
\83\8d\83b
\83N
\93¯
\8aú
63 u1 CHR :1; // 0=8bit data 1=7bit data
64 u1 PE :1; // 0=
\83p
\83\8a\83e
\83B
\82È
\82µ 1=
\83p
\83\8a\83e
\83B
\82 \82è
65 u1 OE :1; // 0=
\8bô
\90\94\83p
\83\8a\83e
\83B 1=
\8aï
\90\94\83p
\83\8a\83e
\83B
66 u1 STOP :1; // 0=
\83X
\83g
\83b
\83v
\83r
\83b
\83g
\92·1bit 1=
\83X
\83g
\83b
\83v
\83r
\83b
\83g
\92·2bit
67 u1 MP :1; // 0=
\83V
\83\93\83O
\83\8b\83v
\83\8d\83Z
\83b
\83T 1=
\83}
\83\8b\83`
\83v
\83\8d\83Z
\83b
\83T
68 u1 CKS1 :1; //
\83N
\83\8d\83b
\83N
\83Z
\83\8c\83N
\83g
69 u1 CKS0 :1; //
\83N
\83\8d\83b
\83N
\83Z
\83\8c\83N
\83g
86 u1 TIE :1; //
\91\97\90M
\8a®
\97¹
\8e\9e\8a\84\82è
\8d\9e\82Ý 0=TXI
\8bÖ
\8e~ 1=TXI
\8b\96\89Â
87 u1 RIE :1; //
\8eó
\90M
\8a®
\97¹
\8e\9e\8a\84\82è
\8d\9e\82Ý 0=RXI
\8bÖ
\8e~ 1=RXI
\8b\96\89Â
88 u1 TE :1; // 0=
\91\97\90M
\8bÖ
\8e~ 1=
\91\97\90M
\8b\96\89Â
89 u1 RE :1; // 0=
\8eó
\90M
\8bÖ
\8e~ 1=
\8eó
\90M
\8b\96\89Â
90 u1 MPIE :1; //
\83}
\83\8b\83`
\83v
\83\8d\83Z
\83b
\83T
\8a\84\82è
\8d\9e\82Ý 0=
\8bÖ
\8e~ 1=
\8b\96\89Â
91 u1 TEIE :1; //
\91\97\90M
\8fI
\97¹
\8a\84\82è
\8d\9e\82Ý 0=
\8bÖ
\8e~ 1=
\8b\96\89Â
92 u1 CKE1 :1; // 0=
\93à
\95\94\83N
\83\8d\83b
\83N(
\92²
\95à
\93¯
\8aú) 1=
\8aO
\95\94\83N
\83\8d\83b
\83N(
\83N
\83\8d\83b
\83N
\93¯
\8aú
\8e®)
93 u1 CKE0 :1; // CKE1=0,0=SCI
\82Í
\81ASCK
\92[
\8eq
\82ð
\8eg
\97p
\82µ
\82Ü
\82¹
\82ñ CKE1=1,0=
\83r
\83b
\83g
\83\8c\81[
\83g
\82Æ
\93¯
\82¶
\8eü
\94g
\90\94\82Ì
\83N
\83\8d\83b
\83N
\82ð
\8fo
\97Í
104 u1 TDRE :1; // 0=TDR
\82É
\97L
\8cø
\82È
\91\97\90M
\83f
\81[
\83^
\82ª
\83\89\83C
\83g
\82³
\82ê
\82Ä
\82¢
\82é 1=TDR
\82É
\97L
\8cø
\82È
\91\97\90M
\83f
\81[
\83^
\82ª
\82È
\82¢
105 //
\81m
\83N
\83\8a\83A
\8fð
\8c\8f\81nTDRE=1
\82Ì
\8fó
\91Ô
\82ð
\83\8a\81[
\83h
\82µ
\82½
\8cã
\81A0
\82ð
\83\89\83C
\83g
\82µ
\82½
\82Æ
\82«, DMAC
\82ÅTDR
\82Ö
\83f
\81[
\83^
\82ð
\83\89\83C
\83g
\82µ
\82½
\82Æ
\82«
106 //
\81m
\83Z
\83b
\83g
\8fð
\8c\8f\81nTDR
\82©
\82çTSR
\82É
\83f
\81[
\83^
\93]
\91\97\82ª
\8ds
\82í
\82ê
\82ÄTDR
\82É
\83f
\81[
\83^
\83\89\83C
\83g
\82ª
\89Â
\94\
\82É
\82È
\82Á
\82½
\82Æ
\82«, SCR
\82ÌTE
\83r
\83b
\83g
\82ª0
\82Ì
\82Æ
\82«,
\83\8a\83Z
\83b
\83g
\81A
\82Ü
\82½
\82Í
\83X
\83^
\83\93\83o
\83C
\83\82\81[
\83h
\8e\9e
107 u1 RDRF :1; // 0=RDR
\82É
\8eó
\90M
\83f
\81[
\83^
\82ª
\8ai
\94[
\82³
\82ê
\82Ä
\82¢
\82È
\82¢ 1=RDR
\82É
\8eó
\90M
\83f
\81[
\83^
\82ª
\8ai
\94[
\82³
\82ê
\82Ä
\82¢
\82é
108 //
\81m
\83N
\83\8a\83A
\8fð
\8c\8f\81nDMAC
\82ÅRDR
\82Ì
\83f
\81[
\83^
\82ð
\83\8a\81[
\83h
\82µ
\82½
\82Æ
\82«, RDRF=1
\82Ì
\8fó
\91Ô
\82ð
\83\8a\81[
\83h
\82µ
\82½
\8cã
\81A0
\82ð
\83\89\83C
\83g
\82µ
\82½
\82Æ
\82«,
\83\8a\83Z
\83b
\83g
\81A
\82Ü
\82½
\82Í
\83X
\83^
\83\93\83o
\83C
\83\82\81[
\83h
\8e\9e
109 //
\81m
\83Z
\83b
\83g
\8fð
\8c\8f\81n
\83V
\83\8a\83A
\83\8b\8eó
\90M
\82ª
\90³
\8fí
\8fI
\97¹
\82µ
\81ARSR
\82©
\82çRDR
\82Ö
\8eó
\90M
\83f
\81[
\83^
\82ª
\93]
\91\97\82³
\82ê
\82½
\82Æ
\82«
110 u1 ORER :1; // 0=
\8eó
\90M
\92\86\81A
\82Ü
\82½
\82Í
\90³
\8fí
\82É
\8eó
\90M
\82ð
\8a®
\97¹
\82µ
\82½ 1=
\8eó
\90M
\8e\9e\82É
\83I
\81[
\83o
\83\89\83\93\83G
\83\89\81[
\82ª
\94
\90¶
\82µ
\82½
111 u1 FER_ERS :1; // 0=
\8eó
\90M
\92\86\81A
\82Ü
\82½
\82Í
\90³
\8fí
\82É
\8eó
\90M
\82ð
\8a®
\97¹
\82µ
\82½ 1=
\8eó
\90M
\8e\9e\82É
\83t
\83\8c\81[
\83~
\83\93\83O
\83G
\83\89\81[
\82ª
\94
\90¶
\82µ
\82½
112 u1 PER :1; // 0=
\8eó
\90M
\92\86\81A
\82Ü
\82½
\82Í
\90³
\8fí
\82É
\8eó
\90M
\82ð
\8a®
\97¹
\82µ
\82½ 1=
\8eó
\90M
\8e\9e\82É
\83p
\83\8a\83e
\83B
\83G
\83\89\81[
\82ª
\94
\90¶
\82µ
\82½
113 u1 TEND :1; // 0=
\91\97\90M
\92\86\82Å
\82 \82é 1=
\91\97\90M
\82ð
\8fI
\97¹
\82µ
\82½
114 u1 MPB :1; //
\83}
\83\8b\83`
\83v
\83\8d\83Z
\83b
\83T
\8aÖ
\98A
135 //typedef int SCI_NO;
146 #define SCI0A ((volatile struct SCI*)0xFFFFB0)
147 #define SCI1A ((volatile struct SCI*)0xFFFFB8)
148 #define SCI2A ((volatile struct SCI*)0xFFFFC0)
150 #define SMR0 0xFFFFB0 //
\83V
\83\8a\83A
\83\8b\83\82\81[
\83h
\83\8c\83W
\83X
\83^
\81iSMR)
151 #define BRR0 0xFFFFB1 //
\83r
\83b
\83g
\83\8c\81[
\83g
\83\8c\83W
\83X
\83^
\81iBRR
\81j
152 #define SCR0 0xFFFFB2 //
\83V
\83\8a\83A
\83\8b\83R
\83\93\83g
\83\8d\81[
\83\8b\83\8c\83W
\83X
\83^
\81iSCR
\81j
153 #define TDR0 0xFFFFB3 //
\83g
\83\89\83\93\83X
\83~
\83b
\83g
\83f
\81[
\83^
\83\8c\83W
\83X
\83^
\81iTDR)
\91\97\90M
\83f
\81[
\83^
154 #define SSR0 0xFFFFB4 //
\83V
\83\8a\83A
\83\8b\83X
\83e
\81[
\83^
\83X
\83\8c\83W
\83X
\83^
\81iSSR
\81j
155 #define RDR0 0xFFFFB5 //
\83\8c\83V
\81[
\83u
\83V
\83t
\83g
\83\8c\83W
\83X
\83^
\81iRSR
\81j
\8eó
\90M
\83f
\81[
\83^
156 #define SCMR0 0xFFFFB6 //
\83X
\83}
\81[
\83g
\83J
\81[
\83h
\83\82\81[
\83h
\83\8c\83W
\83X
\83^(SCMR)
158 #define SMR1 0xFFFFB8
159 #define BRR1 0xFFFFB9
160 #define SCR1 0xFFFFBa
161 #define TDR1 0xFFFFBb
162 #define SSR1 0xFFFFBc
163 #define RDR1 0xFFFFBd
164 #define SCMR1 0xFFFFBe
166 #define SMR2 0xFFFFC0
167 #define BRR2 0xFFFFC1
168 #define SCR2 0xFFFFC2
169 #define TDR2 0xFFFFC3
170 #define SSR2 0xFFFFC4
171 #define RDR2 0xFFFFC5
172 #define SCMR2 0xFFFFC6
178 /********************************************************************************
179 stdio
\83\89\83C
\83u
\83\89\83\8a\82©
\82ç
\82Ì
\8eQ
\8fÆ
180 ********************************************************************************/
181 void charput(char c);
184 /********************************************************************************
185 \83|
\81[
\83\8a\83\93\83O
186 ********************************************************************************/
187 void sci_init(SCI_NO no, BitRate_type_t type);
188 void sci_write(SCI_NO no, char c);
189 void sci_write_str(SCI_NO no,const char* _Str);
190 void sci_read(SCI_NO no, char* buff, int size);
191 char sci_read_byte(SCI_NO no);
192 int sci_read_pol(SCI_NO no);
194 /********************************************************************************
196 ********************************************************************************/
197 char sci_read_byte_intr(SCI_NO no);
198 void sci_write_intr_enable(SCI_NO no);
199 void sci_write_intr_disable(SCI_NO no);
200 void sci_read_intr_enable(SCI_NO no);
201 void sci_read_intr_disable(SCI_NO no);