00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _M68HC11_SIO_H
00022 #define _M68HC11_SIO_H
00023
00029
00039 extern inline void
00040 serial_init (void)
00041 {
00042 _io_ports[M6811_BAUD] = M6811_DEF_BAUD;
00043
00044
00045 _io_ports[M6811_SCCR1] = 0;
00046
00047
00048 _io_ports[M6811_SCCR2] = 0xc;
00049 }
00050
00057 extern inline unsigned char
00058 serial_receive_pending (void)
00059 {
00060 return _io_ports[M6811_SCSR] & M6811_RDRF;
00061 }
00062
00070 extern inline void
00071 serial_flush (void)
00072 {
00073 while (!(_io_ports[M6811_SCSR] & M6811_TDRE))
00074 cop_optional_reset ();
00075 }
00076
00089 extern inline void
00090 serial_send (char c)
00091 {
00092 serial_flush ();
00093 _io_ports[M6811_SCDR] = c;
00094 _io_ports[M6811_SCCR2] |= M6811_TE;
00095 }
00096
00107 extern inline unsigned char
00108 serial_recv (void)
00109 {
00110 while (!(_io_ports[M6811_SCSR] & M6811_RDRF))
00111 cop_optional_reset ();
00112
00113 return _io_ports[M6811_SCDR];
00114 }
00115
00118 #endif
00119