diff --git a/cpu/z80/dev/rs-232.c b/cpu/z80/dev/rs-232.c new file mode 100644 index 000000000..629e4acb7 --- /dev/null +++ b/cpu/z80/dev/rs-232.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2007, Takahide Matsutsuka. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: rs-232.c,v 1.1 2007/09/09 12:22:34 matsutsuka Exp $ + * + */ +/* + * \file + * This is RS-232C process based on polling. + * \author + * Takahide Matsutsuka + */ + +#include "contiki.h" +#include "serial.h" +#include "rs-232.h" + +PROCESS(rs232_process, "RS323C polling process"); +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(rs232_process, ev, data) +{ + char ch; + PROCESS_BEGIN(); + + rs232_arch_init(); + + while(1) { + etimer_set(&timer, CLOCK_SECOND / 16); + PROCESS_WAIT_EVENT(); + if(ev == PROCESS_EVENT_TIMER) { + ch = rs232_poll(); + if (ch != 0) { + serial_input_byte(ch); + } + } + } + + PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ diff --git a/cpu/z80/dev/rs-232.h b/cpu/z80/dev/rs-232.h new file mode 100644 index 000000000..de256e740 --- /dev/null +++ b/cpu/z80/dev/rs-232.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2007, Takahide Matsutsuka. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: rs-232.h,v 1.1 2007/09/09 12:22:34 matsutsuka Exp $ + * + */ +/* + * \file + * This is RS-232C process based on polling. + * \author + * Takahide Matsutsuka + */ + +#ifndef __RS_232C_H__ +#define __RS_232C_H__ + +/* + * Implement the following methods for each platform. + */ + +/* + * RS-232C initialize. + */ +void rs232_arch_init(void); + +/* + * RS-232C polling. + * @return character, zero if no input. + */ +unsigned char rs232_arch_poll(void); + +/* + * RS-232C write a byte. + */ +void rs232_arch_writeb(u8_t ch); + +PROCESS_NAME(rs232_process); + +#endif /* __RS_232C_H__ */