sio.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _M68HC12_SIO_H
00022 #define _M68HC12_SIO_H
00023
00024 #include <sys/param.h>
00025 #include <sys/ports.h>
00026
00027 extern inline void
00028 serial_init (void)
00029 {
00030 _io_ports[M6811_BAUD] = M6811_DEF_BAUD;
00031
00032
00033 _io_ports[M6811_SCCR1] = 0;
00034
00035
00036 _io_ports[M6811_SCCR2] = 0xc;
00037 }
00038
00039
00040 extern inline unsigned char
00041 serial_receive_pending (void)
00042 {
00043 return _io_ports[M6811_SCSR] & M6811_RDRF;
00044 }
00045
00046
00047 extern inline void
00048 serial_flush (void)
00049 {
00050 while (!(_io_ports[M6811_SCSR] & M6811_TDRE))
00051 cop_optional_reset ();
00052 }
00053
00054
00055 extern inline void
00056 serial_send (char c)
00057 {
00058 serial_flush ();
00059 _io_ports[M6811_SCDR] = c;
00060 _io_ports[M6811_SCCR2] |= M6811_TE;
00061 }
00062
00063
00064 extern inline unsigned char
00065 serial_recv (void)
00066 {
00067 while (!(_io_ports[M6811_SCSR] & M6811_RDRF))
00068 cop_optional_reset ();
00069
00070 return _io_ports[M6811_SCDR];
00071 }
00072
00073 extern void serial_print (const char *msg);
00074 extern void serial_getline (char *buf);
00075
00076 #endif
00077
|