sio.h00001
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
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00033
00043 extern inline void
00044 serial_init (void)
00045 {
00046 _io_ports[M6811_BAUD] = M6811_DEF_BAUD;
00047
00048
00049 _io_ports[M6811_SCCR1] = 0;
00050
00051
00052 _io_ports[M6811_SCCR2] = 0xc;
00053 }
00054
00061 extern inline unsigned char
00062 serial_receive_pending (void)
00063 {
00064 return _io_ports[M6811_SCSR] & M6811_RDRF;
00065 }
00066
00074 extern inline void
00075 serial_flush (void)
00076 {
00077 while (!(_io_ports[M6811_SCSR] & M6811_TDRE))
00078 cop_optional_reset ();
00079 }
00080
00093 extern inline void
00094 serial_send (char c)
00095 {
00096 serial_flush ();
00097 _io_ports[M6811_SCDR] = c;
00098 _io_ports[M6811_SCCR2] |= M6811_TE;
00099 }
00100
00111 extern inline unsigned char
00112 serial_recv (void)
00113 {
00114 while (!(_io_ports[M6811_SCSR] & M6811_RDRF))
00115 cop_optional_reset ();
00116
00117 return _io_ports[M6811_SCDR];
00118 }
00119
00122 #ifdef __cplusplus
00123 };
00124 #endif
00125 #endif
00126
|