4 * Created on: 2010/11/27
11 volatile struct SCI *sci;
20 void sci_init(SCI_NO no, BitRate_type_t type)
24 volatile struct SCI* sci = regs[no].sci;
31 for(i = 0; i < 1;i++);
33 //
\91\97\8eó
\90M
\8b\96\89Â
40 /********************************************************************************
41 \83|
\81[
\83\8a\83\93\83O
42 ********************************************************************************/
43 void sci_write(SCI_NO no, char c)
45 volatile struct SCI* sci = regs[no].sci;
47 while(!sci->SSR.BIT.TDRE);
49 sci->SSR.BIT.TDRE = 0;
51 while(sci->SSR.BIT.TEND);
55 void sci_write_str(SCI_NO no,const char* _Str)
57 volatile struct SCI* sci = regs[no].sci;
61 sci_write(no, *_Str++);
64 //
\83o
\83b
\83t
\83@
\82Ì
\92\86\90g
\82ª
\91S
\82Ä
\91\97\90M
\82³
\82ê
\82é
\82Ü
\82Å
\91Ò
\8b@
65 while(!sci->SSR.BIT.TEND);
68 //
\83f
\81[
\83^
\82ð1byte
\82¾
\82¯
\8eó
\90M
\82·
\82é
69 char sci_read_byte(SCI_NO no)
71 volatile struct SCI* sci = regs[no].sci;
74 //
\83f
\81[
\83^
\82ª
\8ai
\94[
\82³
\82ê
\82é
\82Ü
\82Å
\91Ò
\8b@
77 if (sci->SSR.BIT.ORER)
79 sci_write_str(no, "Error_sci over run");
80 sci->SSR.BIT.ORER = 0;
84 sci_write_str(no, "Error_sci parity");
87 if (sci->SSR.BIT.FER_ERS)
89 sci_write_str(no, "Error_sci flaming");
90 sci->SSR.BIT.FER_ERS = 0;
93 //
\83f
\81[
\83^
\82ª
\8ai
\94[
\82³
\82ê
\82Ä
\82¢
\82é
\82©
\8am
\94F
94 if (sci->SSR.BIT.RDRF)
99 sci->SSR.BIT.RDRF = 0;
104 //
\98A
\91±
\82µ
\82½
\83f
\81[
\83^
\82ð
\8eó
\90M
105 void sci_read(SCI_NO no, char* buff, int size)
108 for (i = 0; i < size; i++)
110 *(buff++) = sci_read_byte(no);
114 //
\83f
\81[
\83^
\82ð
\8eó
\90M
\82µ
\82Ä
\82¢
\82é
\82©
\8am
\94F
\82·
\82é
\81B
115 //
\83|
\81[
\83\8a\83\93\83O
\82Å
\8am
\94F
\82·
\82é
116 //
\8ai
\94[
\82³
\82ê
\82Ä
\82¢
\82ê
\82Î1
\82ð
\95Ô
\82µ
\81A
\8ai
\94[
\82³
\82ê
\82Ä
\82¢
\82È
\82¯
\82ê
\82Î
\81A0
\82ð
\95Ô
\82·
117 int sci_read_pol(SCI_NO no)
119 volatile struct SCI* sci = regs[no].sci;
121 if (sci->SSR.BIT.ORER)
123 sci_write_str(no, "Error_sci over run");
124 sci->SSR.BIT.ORER = 0;
126 if (sci->SSR.BIT.PER)
128 sci_write_str(no, "Error_sci parity");
129 sci->SSR.BIT.PER = 0;
131 if (sci->SSR.BIT.FER_ERS)
133 sci_write_str(no, "Error_sci flaming");
134 sci->SSR.BIT.FER_ERS = 0;
137 //
\83f
\81[
\83^
\82ª
\8ai
\94[
\82³
\82ê
\82Ä
\82¢
\82é
\82©
\8am
\94F
138 if (sci->SSR.BIT.RDRF)
146 sci_write(SCI_NO_1, c);
152 c = sci_read_byte(SCI_NO_1);
158 /********************************************************************************
160 ********************************************************************************/
161 char sci_read_byte_intr(SCI_NO no)
163 volatile struct SCI* sci = regs[no].sci;
167 sci->SSR.BIT.RDRF = 0;
171 //
\91\97\90M
\8a®
\97¹
\8a\84\82è
\8d\9e\82ÝEnable
172 void sci_write_intr_enable(SCI_NO no)
174 volatile struct SCI* sci = regs[no].sci;
175 sci->SCR.BIT.TIE = 1;
178 //
\91\97\90M
\8a®
\97¹
\8a\84\82è
\8d\9e\82ÝDisable
179 void sci_write_intr_disable(SCI_NO no)
181 volatile struct SCI* sci = regs[no].sci;
182 sci->SCR.BIT.TIE = 0;
185 //
\8eó
\90M
\8a®
\97¹
\8a\84\82è
\8d\9e\82ÝEnable
186 void sci_read_intr_enable(SCI_NO no)
188 volatile struct SCI* sci = regs[no].sci;
189 sci->SCR.BIT.RIE = 1;
192 //
\8eó
\90M
\8a®
\97¹
\8a\84\82è
\8d\9e\82ÝDisable
193 void sci_read_intr_disable(SCI_NO no)
195 volatile struct SCI* sci = regs[no].sci;
196 sci->SCR.BIT.RIE = 1;