From 43b9f7a23d7a2b68c11c88cf8ad40b777ce2c0c8 Mon Sep 17 00:00:00 2001 From: harald42 Date: Tue, 19 Feb 2013 12:40:25 +0100 Subject: [PATCH] remove platform/osd-er-lp24 --- platform/osd-er-lp24/Makefile.osd-er-lp24 | 41 -- platform/osd-er-lp24/contiki-conf.h | 352 ---------- platform/osd-er-lp24/contiki-main.c | 614 ------------------ platform/osd-er-lp24/dev/adc.c | 89 --- platform/osd-er-lp24/dev/adc.h | 8 - platform/osd-er-lp24/dev/battery-sensor.c | 86 --- platform/osd-er-lp24/dev/battery-sensor.h | 48 -- platform/osd-er-lp24/dev/button-sensor.c | 85 --- platform/osd-er-lp24/dev/dht11.c | 119 ---- platform/osd-er-lp24/dev/dht11.h | 72 -- platform/osd-er-lp24/dev/ds1820.c | 291 --------- platform/osd-er-lp24/dev/ds1820.h | 45 -- platform/osd-er-lp24/dev/key.c | 73 --- platform/osd-er-lp24/dev/key.h | 50 -- platform/osd-er-lp24/dev/led.c | 89 --- platform/osd-er-lp24/dev/led.h | 54 -- platform/osd-er-lp24/dev/pir-sensor.c | 85 --- platform/osd-er-lp24/dev/pir-sensor.h | 48 -- platform/osd-er-lp24/dev/temperature-sensor.c | 66 -- platform/osd-er-lp24/dev/temperature-sensor.h | 49 -- platform/osd-er-lp24/node-id.c | 79 --- platform/osd-er-lp24/node-id.h | 44 -- platform/osd-er-lp24/params.c | 264 -------- platform/osd-er-lp24/params.h | 109 ---- platform/osd-er-lp24/slip_uart0.c | 93 --- 25 files changed, 2953 deletions(-) delete mode 100644 platform/osd-er-lp24/Makefile.osd-er-lp24 delete mode 100644 platform/osd-er-lp24/contiki-conf.h delete mode 100644 platform/osd-er-lp24/contiki-main.c delete mode 100644 platform/osd-er-lp24/dev/adc.c delete mode 100644 platform/osd-er-lp24/dev/adc.h delete mode 100644 platform/osd-er-lp24/dev/battery-sensor.c delete mode 100644 platform/osd-er-lp24/dev/battery-sensor.h delete mode 100644 platform/osd-er-lp24/dev/button-sensor.c delete mode 100644 platform/osd-er-lp24/dev/dht11.c delete mode 100644 platform/osd-er-lp24/dev/dht11.h delete mode 100644 platform/osd-er-lp24/dev/ds1820.c delete mode 100644 platform/osd-er-lp24/dev/ds1820.h delete mode 100644 platform/osd-er-lp24/dev/key.c delete mode 100644 platform/osd-er-lp24/dev/key.h delete mode 100644 platform/osd-er-lp24/dev/led.c delete mode 100644 platform/osd-er-lp24/dev/led.h delete mode 100644 platform/osd-er-lp24/dev/pir-sensor.c delete mode 100644 platform/osd-er-lp24/dev/pir-sensor.h delete mode 100644 platform/osd-er-lp24/dev/temperature-sensor.c delete mode 100644 platform/osd-er-lp24/dev/temperature-sensor.h delete mode 100644 platform/osd-er-lp24/node-id.c delete mode 100644 platform/osd-er-lp24/node-id.h delete mode 100644 platform/osd-er-lp24/params.c delete mode 100644 platform/osd-er-lp24/params.h delete mode 100644 platform/osd-er-lp24/slip_uart0.c diff --git a/platform/osd-er-lp24/Makefile.osd-er-lp24 b/platform/osd-er-lp24/Makefile.osd-er-lp24 deleted file mode 100644 index ded157f14..000000000 --- a/platform/osd-er-lp24/Makefile.osd-er-lp24 +++ /dev/null @@ -1,41 +0,0 @@ -CONTIKI_TARGET_DIRS = . dev apps net loader - -CONTIKI_CORE=contiki-main -CONTIKI_TARGET_MAIN = ${CONTIKI_CORE}.o -CONTIKI_TARGET_SOURCEFILES += contiki-main.c params.c node-id.c -#Needed for slip -CONTIKI_TARGET_SOURCEFILES += temperature-sensor.c adc.c led.c sensors.c slip_uart0.c slip.c -#Needed for Button -CONTIKI_TARGET_SOURCEFILES += button-sensor.c -#Needed for DHT11 humidity sensor -CONTIKI_TARGET_SOURCEFILES += dht11.c -#Needed for DS18S20 temperature sensor -CONTIKI_TARGET_SOURCEFILES += ds1820.c -#Needed for Battery test -CONTIKI_TARGET_SOURCEFILES += battery-sensor.c -#Needed for PIR -CONTIKI_TARGET_SOURCEFILES += pir-sensor.c -CONTIKIAVR=$(CONTIKI)/cpu/avr -CONTIKIBOARD=. -BOOTLOADER_START = 0x1F000 -CONTIKI_PLAT_DEFS = -DF_CPU=16000000UL -DAUTO_CRC_PADDING=2 - -MCU=atmega128rfa1 - -AVRDUDE_PROGRAMMER=jtag2 - -# For usb devices, you may either use PORT=usb, or (e.g. if you have more than one -# programmer connected) you can use the following trick to find out the serial number: -# -# The example is for an JTAGICE mkII used to program an ATmega128: -# avrdude -v -P usb:xxxx -c jtag2 -p atmega128 -AVRDUDE_PORT=usb:00B000000D79 - - -# Additional avrdude options -# Verify off -AVRDUDE_OPTIONS=-V - - -include $(CONTIKIAVR)/Makefile.avr -include $(CONTIKIAVR)/radio/Makefile.radio diff --git a/platform/osd-er-lp24/contiki-conf.h b/platform/osd-er-lp24/contiki-conf.h deleted file mode 100644 index d99a965e2..000000000 --- a/platform/osd-er-lp24/contiki-conf.h +++ /dev/null @@ -1,352 +0,0 @@ -/* - * Copyright (c) 2006, Technical University of Munich - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - * @(#)$$ - */ - -/** - * \file - * Configuration for Atmel ATmega128rfa1 - * \author - * David Kopf - */ - -#ifndef __CONTIKI_CONF_H__ -#define __CONTIKI_CONF_H__ - -/* Platform name, type, and MCU clock rate */ -#define PLATFORM_NAME "RFA1" -#define PLATFORM_TYPE ATMEGA128RFA1 -#ifndef F_CPU -#define F_CPU 16000000UL -#endif - -#include - -/* The AVR tick interrupt usually is done with an 8 bit counter around 128 Hz. - * 125 Hz needs slightly more overhead during the interrupt, as does a 32 bit - * clock_time_t. - */ - /* Clock ticks per second */ -#define CLOCK_CONF_SECOND 128 -#if 1 -/* 16 bit counter overflows every ~10 minutes */ -typedef unsigned short clock_time_t; -#define CLOCK_LT(a,b) ((signed short)((a)-(b)) < 0) -#define INFINITE_TIME 0xffff -#define RIME_CONF_BROADCAST_ANNOUNCEMENT_MAX_TIME INFINITE_TIME/CLOCK_CONF_SECOND /* Default uses 600 */ -#define COLLECT_CONF_BROADCAST_ANNOUNCEMENT_MAX_TIME INFINITE_TIME/CLOCK_CONF_SECOND /* Default uses 600 */ -#else -typedef unsigned long clock_time_t; -#define CLOCK_LT(a,b) ((signed long)((a)-(b)) < 0) -#define INFINITE_TIME 0xffffffff -#endif -/* These routines are not part of the contiki core but can be enabled in cpu/avr/clock.c */ -void clock_delay_msec(uint16_t howlong); -void clock_adjust_ticks(clock_time_t howmany); - -/* Michael Hartman's atmega128rfa1 board has an external 32768Hz crystal connected to TOSC1 and 2 pins similar to the Raven 1284p */ -/* and theoretically can use TIMER2 with it to keep time. Else TIMER0 is used. */ -/* The sleep timer requires the crystal and adds a TIMER2 interrupt routine if not already define by clock.c */ -#define AVR_CONF_USE32KCRYSTAL 1 - -/* Michael Hartman's protobyte board has LED on PORTE1, used for radio on indication */ -/* However this results in disabling UART0. */ -#define RF230BB_CONF_LEDONPORTE1 0 - -/* COM port to be used for SLIP connection. This is usually UART0, but see above */ -#if RF230BB_CONF_LEDONPORTE1 -#define SLIP_PORT RS232_PORT_1 -#else -#define SLIP_PORT RS232_PORT_0 -#endif - -/* Pre-allocated memory for loadable modules heap space (in bytes)*/ -/* Default is 4096. Currently used only when elfloader is present. Not tested on Raven */ -//#define MMEM_CONF_SIZE 256 - -/* Starting address for code received via the codeprop facility. Not tested. */ -typedef unsigned long off_t; -//#define EEPROMFS_ADDR_CODEPROP 0x8000 - -/* Logging adds 200 bytes to program size. RS232 output slows down webserver. */ -//#define LOG_CONF_ENABLED 1 - -/* RADIOSTATS is used in rf230bb, clock.c and the webserver cgi to report radio usage */ -/* It has less overhead than ENERGEST */ -#define RADIOSTATS 0 - -/* More extensive stats, via main loop printfs or webserver status pages */ -#define ENERGEST_CONF_ON 0 - -/* Packet statistics */ -typedef unsigned short uip_stats_t; -#define UIP_STATISTICS 0 - -/* Available watchdog timeouts depend on mcu. Default is WDTO_2S. -1 Disables the watchdog. */ -/* AVR Studio simulator tends to reboot due to clocking the WD 8 times too fast */ -//#define WATCHDOG_CONF_TIMEOUT -1 - -/* Debugflow macro, useful for tracing path through mac and radio interrupts */ -//#define DEBUGFLOWSIZE 128 - - -/* Define MAX_*X_POWER to reduce tx power and ignore weak rx packets for testing a miniature multihop network. - * Leave undefined for full power and sensitivity. - * tx=0 (3dbm, default) to 15 (-17.2dbm) - * RF230_CONF_AUTOACK sets the extended mode using the energy-detect register with rx=0 (-91dBm) to 84 (-7dBm) - * else the rssi register is used having range 0 (91dBm) to 28 (-10dBm) - * For simplicity RF230_MIN_RX_POWER is based on the energy-detect value and divided by 3 when autoack is not set. - * On the RF230 a reduced rx power threshold will not prevent autoack if enabled and requested. - * These numbers applied to both Raven and Jackdaw give a maximum communication distance of about 15 cm - * and a 10 meter range to a full-sensitivity RF230 sniffer. -#define RF230_MAX_TX_POWER 15 -#define RF230_MIN_RX_POWER 30 - */ - /* The rf231 and atmega128rfa1 can use an rssi threshold for triggering rx_busy that saves 0.5ma in rx mode */ -/* 1 - 15 maps into -90 to -48 dBm; the register is written with RF230_MIN_RX_POWER/6 + 1. Undefine for -100dBm sensitivity */ -//#define RF230_MIN_RX_POWER 0 - -/* Network setup */ -/* TX routine passes the cca/ack result in the return parameter */ -#define RDC_CONF_HARDWARE_ACK 1 -/* TX routine does automatic cca and optional backoffs */ -#define RDC_CONF_HARDWARE_CSMA 1 -/* Allow MCU sleeping between channel checks */ -#define RDC_CONF_MCU_SLEEP 1 - -#if UIP_CONF_IPV6 -#define RIMEADDR_CONF_SIZE 8 -#define UIP_CONF_ICMP6 1 -#define UIP_CONF_UDP 1 -#define UIP_CONF_TCP 0 -#define NETSTACK_CONF_NETWORK sicslowpan_driver -#define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_HC06 -#else -/* ip4 should build but is largely untested */ -#define RIMEADDR_CONF_SIZE 2 -#define NETSTACK_CONF_NETWORK rime_driver -#endif - -#define UIP_CONF_LL_802154 1 -#define UIP_CONF_LLH_LEN 0 - -/* 10 bytes per stateful address context - see sicslowpan.c */ -/* Default is 1 context with prefix aaaa::/64 */ -/* These must agree with all the other nodes or there will be a failure to communicate! */ -#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1 -#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=0xaa;addr_contexts[0].prefix[1]=0xaa;} -#define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;} -#define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;} - -/* Take the default TCP maximum segment size for efficiency and simpler wireshark captures */ -/* Use this to prevent 6LowPAN fragmentation (whether or not fragmentation is enabled) */ -//#define UIP_CONF_TCP_MSS 48 - -#define UIP_CONF_IP_FORWARD 0 -#define UIP_CONF_FWCACHE_SIZE 0 - -#define UIP_CONF_IPV6_CHECKS 1 -#define UIP_CONF_IPV6_QUEUE_PKT 1 -#define UIP_CONF_IPV6_REASSEMBLY 0 - -#define UIP_CONF_UDP_CHECKSUMS 1 -#define UIP_CONF_TCP_SPLIT 1 -#define UIP_CONF_DHCP_LIGHT 1 - - -//#if 1 /* No radio cycling */ -#if 0 /* radio cycling */ - -#define NETSTACK_CONF_MAC nullmac_driver -#define NETSTACK_CONF_RDC sicslowmac_driver -#define NETSTACK_CONF_FRAMER framer_802154 -#define NETSTACK_CONF_RADIO rf230_driver -#define CHANNEL_802_15_4 26 -/* AUTOACK receive mode gives better rssi measurements, even if ACK is never requested */ -#define RF230_CONF_AUTOACK 1 -/* Request 802.15.4 ACK on all packets sent (else autoretry). This is primarily for testing. */ -#define SICSLOWPAN_CONF_ACK_ALL 0 -/* 1 + Number of auto retry attempts 0-15 (0 implies don't use extended TX_ARET_ON mode) */ -#define RF230_CONF_FRAME_RETRIES 2 -/* Number of csma retry attempts 0-5 in extended tx mode (7 does immediate tx with no csma) */ -#define RF230_CONF_CSMA_RETRIES 5 -/* Default is one RAM buffer for received packets. More than one may benefit multiple TCP connections or ports */ -#define RF230_CONF_RX_BUFFERS 3 -#define SICSLOWPAN_CONF_FRAG 1 -/* Most browsers reissue GETs after 3 seconds which stops fragment reassembly so a longer MAXAGE does no good */ -#define SICSLOWPAN_CONF_MAXAGE 3 -/* How long to wait before terminating an idle TCP connection. Smaller to allow faster sleep. Default is 120 seconds */ -/* If wait is too short the connection can be reset as a result of multiple fragment reassembly timeouts */ -#define UIP_CONF_WAIT_TIMEOUT 20 -/* 211 bytes per queue buffer */ -#define QUEUEBUF_CONF_NUM 8 -/* 54 bytes per queue ref buffer */ -#define QUEUEBUF_CONF_REF_NUM 2 -/* Allocate remaining RAM as desired */ -/* 30 bytes per TCP connection */ -/* 6LoWPAN does not do well with concurrent TCP streams, as new browser GETs collide with packets coming */ -/* from previous GETs, causing decreased throughput, retransmissions, and timeouts. Increase to study this. */ -/* ACKs to other ports become interleaved with computation-intensive GETs, so ACKs are particularly missed. */ -/* Increasing the number of packet receive buffers in RAM helps to keep ACKs from being lost */ -#define UIP_CONF_MAX_CONNECTIONS 4 -/* 2 bytes per TCP listening port */ -#define UIP_CONF_MAX_LISTENPORTS 4 -/* 25 bytes per UDP connection */ -#define UIP_CONF_UDP_CONNS 10 -/* See uip-ds6.h */ -#define UIP_CONF_DS6_NBR_NBU 20 -#define UIP_CONF_DS6_DEFRT_NBU 2 -#define UIP_CONF_DS6_PREFIX_NBU 3 -#define UIP_CONF_DS6_ROUTE_NBU 20 -#define UIP_CONF_DS6_ADDR_NBU 3 -#define UIP_CONF_DS6_MADDR_NBU 0 -#define UIP_CONF_DS6_AADDR_NBU 0 - - -#elif 1 /* Contiki-mac radio cycling */ -//#define NETSTACK_CONF_MAC nullmac_driver -/* csma needed for burst mode at present. Webserver won't work without it */ -#define NETSTACK_CONF_MAC csma_driver -#define NETSTACK_CONF_RDC contikimac_driver -/* Default is two CCA separated by 500 usec */ -#define NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE 8 -/* Wireshark won't decode with the header, but padded packets will fail ipv6 checksum */ -#define CONTIKIMAC_CONF_WITH_CONTIKIMAC_HEADER 0 -/* So without the header this needed for RPL mesh to form */ -#define CONTIKIMAC_CONF_SHORTEST_PACKET_SIZE 43-18 //multicast RPL DIS length -/* Not tested much yet */ -#define WITH_PHASE_OPTIMIZATION 0 -#define CONTIKIMAC_CONF_COMPOWER 1 -#define RIMESTATS_CONF_ON 1 -#define NETSTACK_CONF_FRAMER framer_802154 -#define NETSTACK_CONF_RADIO rf230_driver -#define CHANNEL_802_15_4 26 -/* The radio needs to interrupt during an rtimer interrupt */ -#define RTIMER_CONF_NESTED_INTERRUPTS 1 -#define RF230_CONF_AUTOACK 1 -/* A 0 here means non-extended mode; 1 means extended mode with no retry, >1 for retrys */ -/* Contikimac strobes on its own, but hardware retries are faster */ -#define RF230_CONF_FRAME_RETRIES 1 -/* Long csma backoffs will compromise radio cycling; set to 0 for 1 csma */ -#define RF230_CONF_CSMA_RETRIES 0 -#define SICSLOWPAN_CONF_FRAG 1 -#define SICSLOWPAN_CONF_MAXAGE 3 -/* 211 bytes per queue buffer. Contikimac burst mode needs 15 for a 1280 byte MTU */ -#define QUEUEBUF_CONF_NUM 15 -/* 54 bytes per queue ref buffer */ -#define QUEUEBUF_CONF_REF_NUM 2 -/* Allocate remaining RAM. Not much left due to queuebuf increase */ -#define UIP_CONF_MAX_CONNECTIONS 2 -#define UIP_CONF_MAX_LISTENPORTS 4 -#define UIP_CONF_UDP_CONNS 5 -#define UIP_CONF_DS6_NBR_NBU 20 -#define UIP_CONF_DS6_DEFRT_NBU 2 -#define UIP_CONF_DS6_PREFIX_NBU 3 -#define UIP_CONF_DS6_ROUTE_NBU 4 -#define UIP_CONF_DS6_ADDR_NBU 3 -#define UIP_CONF_DS6_MADDR_NBU 0 -#define UIP_CONF_DS6_AADDR_NBU 0 - - -#elif 1 /* cx-mac radio cycling */ -/* RF230 does clear-channel assessment in extended mode (autoretries>0) */ -/* These values are guesses */ -#define RF230_CONF_FRAME_RETRIES 10 -#define RF230_CONF_CSMA_RETRIES 2 -#if RF230_CONF_CSMA_RETRIES -#define NETSTACK_CONF_MAC nullmac_driver -#else -#define NETSTACK_CONF_MAC csma_driver -#endif -#define NETSTACK_CONF_RDC cxmac_driver -#define NETSTACK_CONF_FRAMER framer_802154 -#define NETSTACK_CONF_RADIO rf230_driver -#define CHANNEL_802_15_4 26 -#define RF230_CONF_AUTOACK 1 -#define SICSLOWPAN_CONF_FRAG 1 -#define SICSLOWPAN_CONF_MAXAGE 3 -#define CXMAC_CONF_ANNOUNCEMENTS 0 -#define NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE 8 -/* 211 bytes per queue buffer. Burst mode will need 15 for a 1280 byte MTU */ -#define QUEUEBUF_CONF_NUM 15 -/* 54 bytes per queue ref buffer */ -#define QUEUEBUF_CONF_REF_NUM 2 -/* Allocate remaining RAM. Not much left due to queuebuf increase */ -#define UIP_CONF_MAX_CONNECTIONS 2 -#define UIP_CONF_MAX_LISTENPORTS 4 -#define UIP_CONF_UDP_CONNS 5 -#define UIP_CONF_DS6_NBR_NBU 4 -#define UIP_CONF_DS6_DEFRT_NBU 2 -#define UIP_CONF_DS6_PREFIX_NBU 3 -#define UIP_CONF_DS6_ROUTE_NBU 4 -#define UIP_CONF_DS6_ADDR_NBU 3 -#define UIP_CONF_DS6_MADDR_NBU 0 -#define UIP_CONF_DS6_AADDR_NBU 0 -//Below gives 10% duty cycle, undef for default 5% -//#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 80) -//Below gives 50% duty cycle -//#define CXMAC_CONF_ON_TIME (RTIMER_ARCH_SECOND / 16) - -#else -#error Network configuration not specified! -#endif /* Network setup */ - -/* ************************************************************************** */ -//#pragma mark RPL Settings -/* ************************************************************************** */ -#if UIP_CONF_IPV6_RPL - -#define UIP_CONF_ROUTER 1 -#define UIP_CONF_ND6_SEND_RA 0 -#define UIP_CONF_ND6_REACHABLE_TIME 600000 -#define UIP_CONF_ND6_RETRANS_TIMER 10000 - -/* For slow slip connections, to prevent buffer overruns */ -//#define UIP_CONF_RECEIVE_WINDOW 300 -#undef UIP_CONF_FWCACHE_SIZE -#define UIP_CONF_FWCACHE_SIZE 30 -#define UIP_CONF_BROADCAST 1 -#define UIP_ARCH_IPCHKSUM 1 -#define UIP_CONF_PINGADDRCONF 0 -#define UIP_CONF_LOGGING 0 - -#endif /* RPL */ - -#define CCIF -#define CLIF - -/* include the project config */ -/* PROJECT_CONF_H might be defined in the project Makefile */ -#ifdef PROJECT_CONF_H -#include PROJECT_CONF_H -#endif - -#endif /* __CONTIKI_CONF_H__ */ diff --git a/platform/osd-er-lp24/contiki-main.c b/platform/osd-er-lp24/contiki-main.c deleted file mode 100644 index e267b1060..000000000 --- a/platform/osd-er-lp24/contiki-main.c +++ /dev/null @@ -1,614 +0,0 @@ -/* - * Copyright (c) 2006, Technical University of Munich - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - */ -#define PRINTF(FORMAT,args...) printf_P(PSTR(FORMAT),##args) - -#define ANNOUNCE_BOOT 1 //adds about 600 bytes to program size -#if ANNOUNCE_BOOT -#define PRINTA(FORMAT,args...) printf_P(PSTR(FORMAT),##args) -#else -#define PRINTA(...) -#endif - -#define DEBUG 0 -#if DEBUG -#define PRINTD(FORMAT,args...) printf_P(PSTR(FORMAT),##args) -#else -#define PRINTD(...) -#endif - -#include -#include -#include -#include -#include -#include - -#include "loader/symbols-def.h" -#include "loader/symtab.h" - -#include "params.h" -#include "radio/rf230bb/rf230bb.h" -#include "net/mac/frame802154.h" -#include "net/mac/framer-802154.h" -#include "net/sicslowpan.h" - -#include "contiki.h" -#include "contiki-net.h" -#include "contiki-lib.h" - -#include "dev/rs232.h" -#include "dev/serial-line.h" -#include "dev/slip.h" - -#ifdef RAVEN_LCD_INTERFACE -#include "raven-lcd.h" -#endif - -#if AVR_WEBSERVER -#include "httpd-fs.h" -#include "httpd-cgi.h" -#endif - -#ifdef COFFEE_FILES -#include "cfs/cfs.h" -#include "cfs/cfs-coffee.h" -#endif - -#if UIP_CONF_ROUTER&&0 -#include "net/routing/rimeroute.h" -#include "net/rime/rime-udp.h" -#endif - -#include "net/rime.h" - -/* Track interrupt flow through mac, rdc and radio driver */ -//#define DEBUGFLOWSIZE 32 -#if DEBUGFLOWSIZE -uint8_t debugflowsize,debugflow[DEBUGFLOWSIZE]; -#define DEBUGFLOW(c) if (debugflowsize<(DEBUGFLOWSIZE-1)) debugflow[debugflowsize++]=c -#else -#define DEBUGFLOW(c) -#endif - -/* Get periodic prints from idle loop, from clock seconds or rtimer interrupts */ -/* Use of rtimer will conflict with other rtimer interrupts such as contikimac radio cycling */ -/* STAMPS will print ENERGEST outputs if that is enabled. */ -#define PERIODICPRINTS 1 -#if PERIODICPRINTS -//#define PINGS 64 -#define ROUTES 600 -#define STAMPS 60 -#define STACKMONITOR 1024 -uint32_t clocktime; -#define TESTRTIMER 0 -#if TESTRTIMER -uint8_t rtimerflag=1; -struct rtimer rt; -void rtimercycle(void) {rtimerflag=1;} -#endif -#endif - -uint16_t ledtimer; - -/*-------------------------------------------------------------------------*/ -/*----------------------Configuration of the .elf file---------------------*/ -#if 1 -/* The proper way to set the signature is */ -#include -#else -/* Older avr-gcc's may not define the needed SIGNATURE bytes. Do it manually if you get an error */ -typedef struct {const unsigned char B2;const unsigned char B1;const unsigned char B0;} __signature_t; -#define SIGNATURE __signature_t __signature __attribute__((section (".signature"))) -SIGNATURE = { - .B2 = 0x01,//SIGNATURE_2, //ATMEGA128rfa1 - .B1 = 0xA7,//SIGNATURE_1, //128KB flash - .B0 = 0x1E,//SIGNATURE_0, //Atmel -}; -#endif - -#if 1 -/* JTAG+SPI enabled, External osc 1kck4ms1 , Boot 4096 words @ $1F000, TXC1K+4,1msec delay, Brownout 1.9 volts */ -FUSES ={.low = 0xF6, .high = 0x98, .extended = 0xfd,}; -#define BOOTLOADER_START = 0x1F000 -#else -/* JTAG+SPI, Boot 4096 words @ $F000, Internal oscillator, startup 6 CK +0 ms, Brownout 1.8 volts */ -FUSES ={.low = 0xC2, .high = 0x99, .extended = 0xfe,}; -#endif - -#include "lib/sensors.h" -#include "dev/button-sensor.h" -#include "dev/battery-sensor.h" -#include "dev/pir-sensor.h" -SENSORS(&button_sensor, &battery_sensor, &pir_sensor); - -uint8_t -rng_get_uint8(void) { -#if 1 - /* Upper two RSSI reg bits (RND_VALUE) are random in rf231 */ - uint8_t j; - j = (PHY_RSSI&0xc0) + ((PHY_RSSI>>2)&0x30) + ((PHY_RSSI>>4)&0x0c) + ((PHY_RSSI>>6)&0x03); -#else -/* Get a pseudo random number using the ADC */ - uint8_t i,j; - ADCSRA=1< -//#define delay_us( us ) ( _delay_loop_2(1+(us*F_CPU)/4000000UL) ) -// delay_us(50000); - } - clock_init(); -} -#endif - - PRINTA("\n*******Booting %s*******\n",CONTIKI_VERSION_STRING); - -/* rtimers needed for radio cycling */ - rtimer_init(); - - /* Initialize process subsystem */ - process_init(); - - /* etimers must be started before ctimer_init */ - process_start(&etimer_process, NULL); - ctimer_init(); - - /* Start radio and radio receive process */ - NETSTACK_RADIO.init(); - -/* Get a random seed for the 802.15.4 packet sequence number. - * Some layers will ignore duplicates found in a history (e.g. Contikimac) - * causing the initial packets to be ignored after a short-cycle restart. - */ - random_init(rng_get_uint8()); - - /* Set addresses BEFORE starting tcpip process */ - - rimeaddr_t addr; - - if (params_get_eui64(addr.u8)) { - PRINTA("Random EUI64 address generated\n"); - } - -#if UIP_CONF_IPV6 - memcpy(&uip_lladdr.addr, &addr.u8, sizeof(rimeaddr_t)); -#elif WITH_NODE_ID - node_id=get_panaddr_from_eeprom(); - addr.u8[1]=node_id&0xff; - addr.u8[0]=(node_id&0xff00)>>8; - PRINTA("Node ID from eeprom: %X\n",node_id); -#endif - rimeaddr_set_node_addr(&addr); - - rf230_set_pan_addr(params_get_panid(),params_get_panaddr(),(uint8_t *)&addr.u8); - rf230_set_channel(params_get_channel()); - rf230_set_txpower(params_get_txpower()); - -#if UIP_CONF_IPV6 - PRINTA("EUI-64 MAC: %x-%x-%x-%x-%x-%x-%x-%x\n",addr.u8[0],addr.u8[1],addr.u8[2],addr.u8[3],addr.u8[4],addr.u8[5],addr.u8[6],addr.u8[7]); -#else - PRINTA("MAC address "); - uint8_t i; - for (i=sizeof(rimeaddr_t); i>0; i--){ - PRINTA("%x:",addr.u8[i-1]); - } - PRINTA("\n"); -#endif - - /* Initialize stack protocols */ - queuebuf_init(); - NETSTACK_RDC.init(); - NETSTACK_MAC.init(); - NETSTACK_NETWORK.init(); - -#if ANNOUNCE_BOOT - PRINTA("%s %s, channel %u , check rate %u Hz tx power %u\n",NETSTACK_MAC.name, NETSTACK_RDC.name, rf230_get_channel(), - CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0 ? 1:NETSTACK_RDC.channel_check_interval()), - rf230_get_txpower()); -#if UIP_CONF_IPV6_RPL - PRINTA("RPL Enabled\n"); -#endif -#if UIP_CONF_ROUTER - PRINTA("Routing Enabled\n"); -#endif - -#endif /* ANNOUNCE_BOOT */ - - process_start(&tcpip_process, NULL); - -#ifdef RAVEN_LCD_INTERFACE - process_start(&raven_lcd_process, NULL); -#endif - - process_start(&sensors_process, NULL); - - /* Autostart other processes */ - autostart_start(autostart_processes); - - /*---If using coffee file system create initial web content if necessary---*/ -#if COFFEE_FILES - int fa = cfs_open( "/index.html", CFS_READ); - if (fa<0) { //Make some default web content - PRINTA("No index.html file found, creating upload.html!\n"); - PRINTA("Formatting FLASH file system for coffee..."); - cfs_coffee_format(); - PRINTA("Done!\n"); - fa = cfs_open( "/index.html", CFS_WRITE); - int r = cfs_write(fa, &"It works!", 9); - if (r<0) PRINTA("Can''t create /index.html!\n"); - cfs_close(fa); -// fa = cfs_open("upload.html"), CFW_WRITE); -//
- } -#endif /* COFFEE_FILES */ - -/* Add addresses for testing */ -#if 0 -{ - uip_ip6addr_t ipaddr; - uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0); - uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF); -// uip_ds6_prefix_add(&ipaddr,64,0); -} -#endif - -/*--------------------------Announce the configuration---------------------*/ -#if ANNOUNCE_BOOT -#if AVR_WEBSERVER -{ uint8_t i; - char buf[80]; - unsigned int size; - - for (i=0;i>10); -#elif COFFEE_FILES==3 - PRINTA(".%s online with static %u byte program memory file system\n",buf,size); -#elif COFFEE_FILES==4 - PRINTA(".%s online with dynamic %u KB program memory file system\n",buf,size>>10); -#endif /* COFFEE_FILES */ -} -#else - PRINTA("Online\n"); -#endif -#endif /* ANNOUNCE_BOOT */ - -#if RF230BB_CONF_LEDONPORTE1 - /* NB: PORTE1 conflicts with UART0 */ - DDRE|=(1<u8[i] << 8) + addr->u8[i + 1]; - if(a == 0 && f >= 0) { - if(f++ == 0) PRINTF("::"); - } else { - if(f > 0) { - f = -1; - } else if(i > 0) { - PRINTF(":"); - } - PRINTF("%x",a); - } - } -} -#endif - -/*-------------------------------------------------------------------------*/ -/*------------------------- Main Scheduler loop----------------------------*/ -/*-------------------------------------------------------------------------*/ -int -main(void) -{ - initialize(); - - while(1) { - process_run(); - watchdog_periodic(); - - /* Turn off LED after a while */ - if (ledtimer) { - if (--ledtimer==0) { -#if RF230BB_CONF_LEDONPORTE1 - PORTE&=~(1<"); - PRINTF("\nRoutes [%u max]\n",UIP_DS6_ROUTE_NB); - { - uip_ds6_route_t *r; - PRINTF("\nRoutes [%u max]\n",UIP_DS6_ROUTE_NB); - j = 1; - for(r = uip_ds6_route_list_head(); - r != NULL; - r = list_item_next(r)) { - ipaddr_add(&r->ipaddr); - PRINTF("/%u (via ", r->length); - ipaddr_add(&r->nexthop); - // if(uip_ds6_routing_table[i].state.lifetime < 600) { - PRINTF(") %lus\n", r->state.lifetime); - // } else { - // PRINTF(")\n"); - // } - j = 0; - } - } - if (j) PRINTF(" "); - PRINTF("\n---------\n"); -} -#endif - -#if STACKMONITOR -if ((clocktime%STACKMONITOR)==3) { - extern uint16_t __bss_end; - uint16_t p=(uint16_t)&__bss_end; - do { - if (*(uint16_t *)p != 0x4242) { - PRINTF("Never-used stack > %d bytes\n",p-(uint16_t)&__bss_end); - break; - } - p+=10; - } while (p -*/ - -#include - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -int readADC(uint8_t pin) -{ - int result = 0; - - if ( pin >= 14 ) - pin -= 14; - - ADMUX = _BV(REFS1) | _BV(REFS0) | ( pin & 7 ) ; - ADCSRA = _BV(ADEN) | _BV(ADPS0) | _BV(ADPS2) ; - sbi(ADCSRA,ADSC); - loop_until_bit_is_clear(ADCSRA,ADSC); - - - result = ADC; - - ADCSRA=0; //disable ADC - ADMUX=0; //turn off internal vref - - return result; -} - -/** -* \return Internal temperature in 0.01C, e.g. 25C is 2500 -*/ -int readInternalTemp(void) -{ - int reading = 0; - - ADCSRB |= _BV(MUX5); - ADMUX = _BV(REFS1) | _BV(REFS0) | 0b1001 ; - ADCSRA = _BV(ADEN) | _BV(ADPS0) | _BV(ADPS2) ; - - sbi(ADCSRA,ADSC); - loop_until_bit_is_clear(ADCSRA,ADSC); - reading = ADC; - - ADCSRA=0; //disable ADC - ADCSRB=0; //disable ADC - ADMUX=0; //turn off internal vref - - return reading * 113 - 27280; -} \ No newline at end of file diff --git a/platform/osd-er-lp24/dev/adc.h b/platform/osd-er-lp24/dev/adc.h deleted file mode 100644 index ea851f237..000000000 --- a/platform/osd-er-lp24/dev/adc.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __ADC_ARCH_H__ -#define __ADC_ARCH_H__ - -int readADC(uint8_t pin); -long readVcc(); -int readInternalTemp(void); - -#endif /* __ADC_ARCH_H__ */ \ No newline at end of file diff --git a/platform/osd-er-lp24/dev/battery-sensor.c b/platform/osd-er-lp24/dev/battery-sensor.c deleted file mode 100644 index 56837baa8..000000000 --- a/platform/osd-er-lp24/dev/battery-sensor.c +++ /dev/null @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2012, BinaryLabs. -* 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. Neither the name of the Institute nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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: battery-sensor.h,v 1.1 2012/08/25 19:34:06 nifi Exp $ -*/ - -/** -* \file -* Battery sensor file for Atmega128rfa1. -* \author -* Paulo Louro -* Harald Pichler -*/ - -/** -*The atmel rf23x radios have a low voltage detector that can be configured in units of 75 millivolts. Here is example *code for the ATmega128rfa1, where the BATMON register is in extended io space [dak664] -*/ - -#include "dev/battery-sensor.h" - -const struct sensors_sensor battery_sensor; -/*---------------------------------------------------------------------------*/ - -/** -* \return Voltage on battery measurement with BATMON register. -*/ -static int -value(int type) -{ - uint16_t h; - uint8_t p1; - BATMON = 16; //give BATMON time to stabilize at highest range and lowest voltage - -/* Bandgap can't be measured against supply voltage in this chip. */ -/* Use BATMON register instead */ - for ( p1=16; p1<31; p1++) { - BATMON = p1; - clock_delay_usec(100); // delay needed !! - if ((BATMON&(1< -*/ - -#ifndef __BATTERY_SENSOR_H__ -#define __BATTERY_SENSOR_H__ - -#include "lib/sensors.h" - -extern const struct sensors_sensor battery_sensor; - -#define BATTERY_SENSOR "Battery" - -#endif /* __BATTERY_SENSOR_H__ */ \ No newline at end of file diff --git a/platform/osd-er-lp24/dev/button-sensor.c b/platform/osd-er-lp24/dev/button-sensor.c deleted file mode 100644 index 491879f3a..000000000 --- a/platform/osd-er-lp24/dev/button-sensor.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Sensor routine */ - -#include "lib/sensors.h" -#include "dev/button-sensor.h" - -#include -#include "led.h" // debug - -const struct sensors_sensor button_sensor; - -static struct timer debouncetimer; -static int status(int type); -static int enabled = 0; -struct sensors_sensor *sensors[1]; -unsigned char sensors_flags[1]; - -#define BUTTON_BIT INTF5 -#define BUTTON_CHECK_IRQ() (EIFR & BUTTON_BIT) ? 0 : 1 - -#define PRINTF(...) printf(__VA_ARGS__) -/*---------------------------------------------------------------------------*/ -ISR(INT5_vect) -{ - -// leds_toggle(LEDS_YELLOW); - - if(BUTTON_CHECK_IRQ()) { - if(timer_expired(&debouncetimer)) { - led1_on(); - timer_set(&debouncetimer, CLOCK_SECOND / 4); - sensors_changed(&button_sensor); - led1_off(); - } - } - -} -/*---------------------------------------------------------------------------*/ - -static int -value(int type) -{ - return (PORTE & _BV(PE5) ? 0 : 1) || !timer_expired(&debouncetimer); - //return 0; -} - -static int -configure(int type, int c) -{ - switch (type) { - case SENSORS_ACTIVE: - if (c) { - if(!status(SENSORS_ACTIVE)) { - led1_on(); - timer_set(&debouncetimer, 0); - DDRE |= (0< -#include "contiki.h" -#include "dht11.h" -#include "led.h" // debug - -#define udelay(u) clock_delay_usec(u) -#define mdelay(u) clock_delay_msec(u) - -uint8_t DHT_Read_Data(uint8_t select){ - - //data[5] is 8byte table where data come from DHT are stored - //laststate holds laststate value - //counter is used to count microSeconds - uint8_t data[5], laststate = 0, counter = 0, j = 0, i = 0; - - //Clear array - data[0] = data[1] = data[2] = data[3] = data[4] = 0; - - uint8_t volatile sreg; - sreg = SREG; /* Save status register before disabling interrupts. */ - cli(); /* Disable interrupts. */ - - //Prepare the bus - PIN_INIT(); - //Set pin Output - //Pin High - DHT_DRIVE(); - mdelay(250); //Wait for 250mS - - //Send Request Signal - //Pin Low - OUTP_0(); - mdelay(20); //20ms Low - - //Pin High - OUTP_1(); - udelay(40); //40us High - - //Set pin Input to read Bus - //Set pin Input - DHT_RELEASE(); - laststate=DHT_INP(); //Read Pin value - - //Repeat for each Transistions - for (i=0; i254) break; - } - - if (counter>254) break; - - //laststate==_BV(DHT_PIN) checks if laststate was High - //ignore the first 2 transitions which are the DHT Response - //if (laststate==_BV(DHT_PIN) && (i > 2)) { - if ((i&0x01) && (i > 2)) { - //Save bits in segments of bytes - //Shift data[] value 1 position left - //Example. 01010100 if we shift it left one time it will be - //10101000 - led1_on(); - - data[j/8]<<=1; - if (counter >= 15) { //If it was high for more than 40uS - led1_off(); - data[j/8]|=1; //it means it is bit '1' so make a logic - led1_on(); - } //OR with the value (save it) - j++; //making an OR by 1 to this value 10101000 - led1_off(); - - } //we will have the resault 10101001 - //1 in 8-bit binary is 00000001 - //j/8 changes table record every 8 bits which means a byte has been saved - //so change to next record. 0/8=0 1/8=0 ... 7/8=0 8/8=1 ... 15/8=1 16/8=2 - laststate=DHT_INP(); //save current state - counter=0; //reset counter - - } - SREG = sreg; /* Enable interrupts. */ - - //Check if data received are correct by checking the CheckSum - if (data[0] + data[1] + data[2] + data[3] == data[4]) { - if (select==DHT_Temp) { //Return the value has been choosen - return(data[2]); - }else if(select==DHT_RH){ - return(data[0]); - } - }else{ -// uart_puts("\r\nCheck Sum Error"); - } - - return 0xff; // Check Sum Error -} diff --git a/platform/osd-er-lp24/dev/dht11.h b/platform/osd-er-lp24/dev/dht11.h deleted file mode 100644 index 7012b75c6..000000000 --- a/platform/osd-er-lp24/dev/dht11.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - DHT-11 Library - (c) Created by Charalampos Andrianakis on 18/12/11. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - */ - -#include -#include -#include - -/* DHT 1-wire is at PortE.6 */ -#define DHT_PIN_READ PINE -#define DHT_PIN_MASK _BV(PE6) -#define DHT_PxOUT PORTE -#define DHT_PxDIR DDRE - -#define SET_PIN_INPUT() (DHT_PxDIR &= ~DHT_PIN_MASK) -#define SET_PIN_OUTPUT() (DHT_PxDIR |= DHT_PIN_MASK) - -#define OUTP_0() (DHT_PxOUT &= ~DHT_PIN_MASK) -#define OUTP_1() (DHT_PxOUT |= DHT_PIN_MASK) - -#define PIN_INIT() do{ \ - SET_PIN_INPUT(); \ - OUTP_0(); \ - } while(0) - - -/* Drive the one wire interface hight */ -#define DHT_DRIVE() do { \ - SET_PIN_OUTPUT(); \ - OUTP_1(); \ - } while (0) - -/* Release the one wire by turning on the internal pull-up. */ -#define DHT_RELEASE() do { \ - SET_PIN_INPUT(); \ - OUTP_1(); \ - } while (0) - -/* Read one bit. */ -#define DHT_INP() (DHT_PIN_READ & DHT_PIN_MASK) - -//The packet size is 40bit but each bit consists of low and high state -//so 40 x 2 = 80 transitions. Also we have 2 transistions DHT response -//and 2 transitions which indicates End Of Frame. In total 84 -#define MAXTIMINGS 84 - -//Select between Temp and Humidity Read -#define DHT_Temp 0 -#define DHT_RH 1 - -//This is the main function which requests and reads the packet -uint8_t DHT_Read_Data(uint8_t select); - diff --git a/platform/osd-er-lp24/dev/ds1820.c b/platform/osd-er-lp24/dev/ds1820.c deleted file mode 100644 index 9de3fc8a9..000000000 --- a/platform/osd-er-lp24/dev/ds1820.c +++ /dev/null @@ -1,291 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ds1820.c,v 1.5 2010/08/25 18:35:52 nifi Exp $ - */ -/* - * Device driver for the Dallas Semiconductor DS1820 chip. Heavily - * based on the application note 126 "1-Wire Communications Through - * Software". - * - * http://www.maxim-ic.com/appnotes.cfm/appnote_number/126 - */ - -/* - * For now we stuff in Moteiv Corporation's unique OUI. - * From http://www.ethereal.com/distribution/manuf.txt: - * 00:12:75 Moteiv # Moteiv Corporation - * - * The EUI-64 is a concatenation of the 24-bit OUI value assigned by - * the IEEE Registration Authority and a 40-bit extension identifier - * assigned by the organization with that OUI assignment. - */ - -#include -#include -#include "contiki.h" -#include "ds1820.h" - - -unsigned char ds1820_id[8]; -unsigned char ds1820_ok[8]; - -/* 1-wire is at PortE.3 */ -#define SERIAL_ID_PIN_READ PINE -//#define SERIAL_ID_PIN_MASK _BV(PE3) -#define SERIAL_ID_PIN_MASK _BV(PE4) -#define SERIAL_ID_PxOUT PORTE -#define SERIAL_ID_PxDIR DDRE - -#define SET_PIN_INPUT() (SERIAL_ID_PxDIR &= ~SERIAL_ID_PIN_MASK) -#define SET_PIN_OUTPUT() (SERIAL_ID_PxDIR |= SERIAL_ID_PIN_MASK) - -#define OUTP_0() (SERIAL_ID_PxOUT &= ~SERIAL_ID_PIN_MASK) -#define OUTP_1() (SERIAL_ID_PxOUT |= SERIAL_ID_PIN_MASK) - -#define PIN_INIT() do{ \ - SET_PIN_INPUT(); \ - OUTP_0(); \ - } while(0) - - -/* Drive the one wire interface low */ -#define OW_DRIVE() do { \ - SET_PIN_OUTPUT(); \ - OUTP_0(); \ - } while (0) - -/* Release the one wire by turning on the internal pull-up. */ -#define OW_RELEASE() do { \ - SET_PIN_INPUT(); \ - OUTP_1(); \ - } while (0) - -/* Read one bit. */ -#define INP() (SERIAL_ID_PIN_READ & SERIAL_ID_PIN_MASK) - - -/* - * Delay times in us. - */ -#define tA 6 /* min-5, recommended-6, max-15 */ -#define tB 64 /* min-59, recommended-64, max-N/A */ -#define tC 60 /* min-60, recommended-60, max-120 */ -#define tD 10 /* min-5.3, recommended-10, max-N/A */ -#define tE 9 /* min-0.3, recommended-9, max-9.3 */ -#define tF 55 /* min-50, recommended-55, max-N/A */ -#define tG 0 /* min-0, recommended-0, max-0 */ -#define tH 480 /* min-480, recommended-480, max-640 */ -#define tI 70 /* min-60.3, recommended-70, max-75.3 */ -#define tJ 410 /* min-410, recommended-410, max-N/A */ -/*---------------------------------------------------------------------------*/ -#define udelay(u) clock_delay_usec(u) -/*---------------------------------------------------------------------------*/ - -static int -owreset(void) -{ - int result; - - OW_DRIVE(); - udelay(tH); /* 480 < tH < 640 */ - OW_RELEASE(); /* Releases the bus */ - udelay(tI); - result = INP(); - udelay(tJ); - return result; -} -/*---------------------------------------------------------------------------*/ -static void -owwriteb(unsigned byte) -{ - int i = 7; - - do { - if(byte & 0x01) { - OW_DRIVE(); - udelay(tA); - OW_RELEASE(); /* Releases the bus */ - udelay(tB); - } else { - OW_DRIVE(); - udelay(tC); - OW_RELEASE(); /* Releases the bus */ - udelay(tD); - } - if(i == 0) { - return; - } - i--; - byte >>= 1; - } while(1); -} -/*---------------------------------------------------------------------------*/ -static unsigned -owreadb(void) -{ - unsigned result = 0; - int i = 7; - - do { - OW_DRIVE(); - udelay(tA); - OW_RELEASE(); /* Releases the bus */ - udelay(tE); - if (INP()){ - result |= 0x80; /* LSbit first */ - } - udelay(tF); - if(i == 0) { - return result; - } - i--; - result >>= 1; - } while(1); -} -/*---------------------------------------------------------------------------*/ -/* Polynomial ^8 + ^5 + ^4 + 1 */ -static unsigned -crc8_add(unsigned acc, unsigned byte) -{ - int i; - acc ^= byte; - for(i = 0; i < 8; i++) { - if(acc & 1) { - acc = (acc >> 1) ^ 0x8c; - } else { - acc >>= 1; - } - } - return acc; -} -/*---------------------------------------------------------------------------*/ -int -ds1820_init() -{ - int i; - unsigned family, crc, acc; - - PIN_INIT(); - - if(owreset() == 0) { /* Something pulled down 1-wire. */ - - owwriteb(0x33); /* Read ROM command. */ - family = owreadb(); - /* We receive 6 bytes in the reverse order, LSbyte first. */ - for(i = 7; i >= 2; i--) { - ds1820_id[i] = owreadb(); - } - crc = owreadb(); - - /* Verify family DS1820 and that CRC match. */ - if(family != 0x10) { - goto fail; - } - acc = crc8_add(0x0, family); - for(i = 7; i >= 2; i--) { - acc = crc8_add(acc, ds1820_id[i]); - } - if(acc == crc) { - ds1820_id[0] = 0x00; - ds1820_id[1] = 0x00; - ds1820_id[2] = 0x00; - return 1; /* Success! */ - } - } else { - } - - - fail: - memset(ds1820_id, 0x0, sizeof(ds1820_id)); - return 0; /* Fail! */ -} -/*---------------------------------------------------------------------------*/ -int -ds1820_temp() -{ - ds1820_convert(); -// wait max 750ms pin lo - clock_wait(CLOCK_SECOND); - ds1820_read(); - return 1; -} - -int -ds1820_convert() -{ - unsigned i; - - PIN_INIT(); - for(i=0;i<3;i++){ - if(owreset() == 0) { /* Something pulled down 1-wire. */ - owwriteb(0xCC); /* Skip ROM command. */ - owwriteb(0x44); /* Convert T command. */ - OW_RELEASE(); /* Releases the bus */ - return 1; - } else { - } - } - return 0; /* Fail! */ -} -/*---------------------------------------------------------------------------*/ -int -ds1820_read() -{ - int i; - unsigned crc, acc; - - if(owreset() == 0) { /* Something pulled down 1-wire. */ - owwriteb(0xCC); /* Skip ROM command. */ - owwriteb(0xBE); /* Read Scratchpad command. */ - /* We receive 8 bytes in the reverse order, LSbyte first. */ - for(i = 0; i < 8; i++) { - ds1820_id[i] = owreadb(); - } - crc = owreadb(); - - acc=0; - for(i = 0; i < 8; i++) { - acc = crc8_add(acc, ds1820_id[i]); - } - if(acc == crc) { - // store temp - for(i = 0; i < 8; i++) { - ds1820_ok[i]=ds1820_id[i]; - } - return 1; /* Success! */ - } else { - return 0; /* Fail! */ - } - } else { - return 0; /* Fail! */ - } - return 1; /* Fail! */ -} diff --git a/platform/osd-er-lp24/dev/ds1820.h b/platform/osd-er-lp24/dev/ds1820.h deleted file mode 100644 index e4178d63e..000000000 --- a/platform/osd-er-lp24/dev/ds1820.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2005, Swedish Institute of Computer Science - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - * @(#)$Id: ds1820.h,v 1.1 2006/06/17 22:41:16 adamdunkels Exp $ - */ -/* -*- C -*- */ -/* @(#)$Id: ds1820.h,v 1.1 2006/06/17 22:41:16 adamdunkels Exp $ */ - -#ifndef DS1820_H -#define DS1820_H - -extern unsigned char ds1820_id[8]; -extern unsigned char ds1820_ok[8]; -extern int ds1820_init(); -extern int ds1820_convert(); -extern int ds1820_read(); -extern int ds1820_temp(); -#endif /* DS1820_H */ diff --git a/platform/osd-er-lp24/dev/key.c b/platform/osd-er-lp24/dev/key.c deleted file mode 100644 index 20d852c18..000000000 --- a/platform/osd-er-lp24/dev/key.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2010 harald pichler - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * 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. - * * Neither the name of the copyright holders nor the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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. - */ -/** - * \file - * - * \brief - * This file provides Raven KEY support. - * - * \author - * Harald Pichler harald@the-develop.net - * - */ - -#include "key.h" - -/*---------------------------------------------------------------------------*/ - -/** - * \brief This will intialize the KEY for button readings. -*/ -void -key_init(void) -{ - /* Enter is input w/pullup */ - DDRF &= ~(1< -#include - -void key_init(void); -uint8_t is_button(void); - -#endif /* __KEY_H__ */ diff --git a/platform/osd-er-lp24/dev/led.c b/platform/osd-er-lp24/dev/led.c deleted file mode 100644 index 8f330e13a..000000000 --- a/platform/osd-er-lp24/dev/led.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2012 harald pichler - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * 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. - * * Neither the name of the copyright holders nor the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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. - */ -/** - * \file - * - * \brief - * This file provides Raven LED support. - * - * \author - * Harald Pichler harald@the-develop.net - * - */ - -#include "led.h" - -/** - * \addtogroup relay - * \{ -*/ -/*---------------------------------------------------------------------------*/ - -/** - * \brief Turns the Raven LED1 on. -*/ -void -led1_on(void) -{ - DDRE |= (1< - -/** @name LED Functions */ -/** @{ */ -void led1_on(void); -void led1_off(void); -void led2_on(void); -void led2_off(void); -/** @} */ - -#endif /* __LED_H__ */ diff --git a/platform/osd-er-lp24/dev/pir-sensor.c b/platform/osd-er-lp24/dev/pir-sensor.c deleted file mode 100644 index cff260816..000000000 --- a/platform/osd-er-lp24/dev/pir-sensor.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Sensor routine */ -#include "contiki.h" -#include "lib/sensors.h" -#include "dev/pir-sensor.h" - -#include -#include "led.h" // debug - -const struct sensors_sensor pir_sensor; - -static struct timer debouncetimer; -static int status(int type); -static int enabled = 0; -struct sensors_sensor *sensors[1]; -unsigned char sensors_flags[1]; - -#define PIR_BIT INTF6 -#define PIR_CHECK_IRQ() (EIFR & PIR_BIT) ? 0 : 1 - -#define PRINTF(...) printf(__VA_ARGS__) -/*---------------------------------------------------------------------------*/ -ISR(INT6_vect) -{ - -// leds_toggle(LEDS_YELLOW); - - if(PIR_CHECK_IRQ()) { - if(timer_expired(&debouncetimer)) { - led1_on(); - timer_set(&debouncetimer, CLOCK_SECOND / 4); - sensors_changed(&pir_sensor); - led1_off(); - } - } - -} -/*---------------------------------------------------------------------------*/ - -static int -value(int type) -{ - return (PORTE & _BV(PE6) ? 0 : 1) || !timer_expired(&debouncetimer); - //return 0; -} - -static int -configure(int type, int c) -{ - switch (type) { - case SENSORS_ACTIVE: - if (c) { - if(!status(SENSORS_ACTIVE)) { - led1_on(); - timer_set(&debouncetimer, 0); - DDRE |= (0< -*/ - -#ifndef __PIR_SENSOR_H__ -#define __PIR_SENSOR_H__ - -#include "lib/sensors.h" - -extern const struct sensors_sensor pir_sensor; - -#define PIR_SENSOR "PIR" - -#endif /* __PIR_SENSOR_H__ */ \ No newline at end of file diff --git a/platform/osd-er-lp24/dev/temperature-sensor.c b/platform/osd-er-lp24/dev/temperature-sensor.c deleted file mode 100644 index c85896178..000000000 --- a/platform/osd-er-lp24/dev/temperature-sensor.c +++ /dev/null @@ -1,66 +0,0 @@ -/* -* Copyright (c) 2012, BinaryLabs. -* 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. Neither the name of the Institute nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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: temperature-sensor.c,v 1.1 2010/08/25 19:34:06 nifi Exp $ -*/ - -/** -* \file -* Temperature sensor header file for Atmega128rfa1. -* \author -* Paulo Louro -*/ - -#include "contiki.h" -#include "dev/temperature-sensor.h" - -#define PRINTF(...) printf(__VA_ARGS__) - - -const struct sensors_sensor temperature_sensor; - -/*---------------------------------------------------------------------------*/ -static int -value(int type) -{ - return readInternalTemp(); -} -/*---------------------------------------------------------------------------*/ -static int -configure(int type, int c) -{ - return 1; -} -/*---------------------------------------------------------------------------*/ -static int -status(int type) -{ - return 1; -} -/*---------------------------------------------------------------------------*/ -SENSORS_SENSOR(temperature_sensor, TEMPERATURE_SENSOR, value, configure, status); \ No newline at end of file diff --git a/platform/osd-er-lp24/dev/temperature-sensor.h b/platform/osd-er-lp24/dev/temperature-sensor.h deleted file mode 100644 index 6cf5dbf26..000000000 --- a/platform/osd-er-lp24/dev/temperature-sensor.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2012, BinaryLabs. -* 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. Neither the name of the Institute nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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: temperature-sensor.h,v 1.1 2012/08/25 19:34:06 nifi Exp $ -*/ - -/** -* \file -* Temperature sensor header file for Atmega128rfa1. -* \author -* Paulo Louro -*/ - -#ifndef __TEMPERATURE_SENSOR_H__ -#define __TEMPERATURE_SENSOR_H__ - -#include "lib/sensors.h" -#include "dev/adc.h" - -extern const struct sensors_sensor temperature_sensor; - -#define TEMPERATURE_SENSOR "Temperature" - -#endif /* __TEMPERATURE_SENSOR_H__ */ \ No newline at end of file diff --git a/platform/osd-er-lp24/node-id.c b/platform/osd-er-lp24/node-id.c deleted file mode 100644 index 8698b1855..000000000 --- a/platform/osd-er-lp24/node-id.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science. - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - * $Id: node-id.c,v 1.1 2007/03/23 09:59:08 nifi Exp $ - */ - -/** - * \file - * Utility to store a node id in the external flash - * \author - * Adam Dunkels - */ - -#include "node-id.h" -#include "contiki-conf.h" -#include "dev/xmem.h" - -unsigned short node_id = 0; - -/*---------------------------------------------------------------------------*/ -void -node_id_restore(void) -{ -/* todo */ -/* - unsigned char buf[4]; - xmem_pread(buf, 4, NODE_ID_XMEM_OFFSET); - if(buf[0] == 0xad && - buf[1] == 0xde) { - node_id = (buf[2] << 8) | buf[3]; - } else { - node_id = 0; - } -*/ - node_id = 0; -} -/*---------------------------------------------------------------------------*/ -void -node_id_burn(unsigned short id) -{ -/* todo */ -/* - unsigned char buf[4]; - buf[0] = 0xad; - buf[1] = 0xde; - buf[2] = id >> 8; - buf[3] = id & 0xff; - xmem_erase(XMEM_ERASE_UNIT_SIZE, NODE_ID_XMEM_OFFSET); - xmem_pwrite(buf, 4, NODE_ID_XMEM_OFFSET); -*/ -} -/*---------------------------------------------------------------------------*/ diff --git a/platform/osd-er-lp24/node-id.h b/platform/osd-er-lp24/node-id.h deleted file mode 100644 index 592379fc9..000000000 --- a/platform/osd-er-lp24/node-id.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science. - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels - * - * $Id: node-id.h,v 1.1 2007/03/23 09:59:08 nifi Exp $ - */ - -#ifndef __NODE_ID_H__ -#define __NODE_ID_H__ - -void node_id_restore(void); -void node_id_burn(unsigned short node_id); - -extern unsigned short node_id; - -#endif /* __NODE_ID_H__ */ diff --git a/platform/osd-er-lp24/params.c b/platform/osd-er-lp24/params.c deleted file mode 100644 index aadbb83c4..000000000 --- a/platform/osd-er-lp24/params.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright (c) 2011, Swedish Institute of Computer Science. - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - */ -#define PRINTF(FORMAT,args...) printf_P(PSTR(FORMAT),##args) - -#define DEBUG 1 -#if DEBUG -#define PRINTD(FORMAT,args...) printf_P(PSTR(FORMAT),##args) -#else -#define PRINTD(...) -#endif - -#include "contiki.h" -#include -#include -#include -#include - -#if AVR_WEBSERVER -//#include "httpd-fs.h" -//#include "httpd-cgi.h" -#endif - -#include "contiki-net.h" -#include "params.h" - -#if WITH_NODE_ID -uint16_t node_id; -#endif - -#if CONTIKI_CONF_RANDOM_MAC -extern uint8_t rng_get_uint8(void); -static void -generate_new_eui64(uint8_t eui64[8]) { - eui64[0] = 0x02; - eui64[1] = rng_get_uint8(); - eui64[2] = rng_get_uint8(); - eui64[3] = 0xFF; - eui64[4] = 0xFE; - eui64[5] = rng_get_uint8(); - eui64[6] = rng_get_uint8(); - eui64[7] = rng_get_uint8(); -} -#endif - -#if AVR_WEBSERVER -/* Webserver builds can set these in httpd-fsdata.c via makefsdata.h */ -extern uint8_t default_mac_address[8]; -extern uint8_t default_server_name[16]; -extern uint8_t default_domain_name[30]; -#else -const uint8_t default_mac_address[8] PROGMEM = PARAMS_EUI64ADDR; -const uint8_t default_server_name[] PROGMEM = PARAMS_SERVERNAME; -const uint8_t default_domain_name[] PROGMEM = PARAMS_DOMAINNAME; -#endif - -#if PARAMETER_STORAGE==0 -/* 0 Hard coded, minmal program and eeprom usage. */ -uint8_t -params_get_eui64(uint8_t *eui64) { -#if CONTIKI_CONF_RANDOM_MAC - PRINTD("Generating random EUI64 MAC\n"); - generate_new_eui64(eui64); - return 1; -#else - uint8_t i; - for (i=0;i 26)) x[1]=x[0]; -/* Do exclusive or test on the two values read */ - if((uint8_t)x[0]!=(uint8_t)~x[1]) {//~x[1] can promote comparison to 16 bit -/* Verification fails, rewrite everything */ - uint8_t i,buffer[32]; - PRINTD("EEPROM is corrupt, rewriting with defaults.\n"); -#if CONTIKI_CONF_RANDOM_MAC - PRINTD("Generating random EUI64 MAC\n"); - generate_new_eui64(&buffer); - randomeui64=1; -#else - for (i=0;iSet EEPROM RF channel to %d\n",x); - } - } - return x; -} -uint8_t -params_get_eui64(uint8_t *eui64) { - size_t size = sizeof(rimeaddr_t); - if(settings_get(SETTINGS_KEY_EUI64, 0, (unsigned char*)eui64, &size) == SETTINGS_STATUS_OK) { - PRINTD("<-Get EUI64 MAC\n"); - return 0; - } -#if CONTIKI_CONF_RANDOM_MAC - PRINTD("Generating random EUI64 MAC\n"); - generate_new_eui64(eui64); -#else - {uint8_t i;for (i=0;i<8;i++) eui64[i] = pgm_read_byte_near(default_mac_address+i);} //test this -#endif - if (settings_add(SETTINGS_KEY_EUI64,(unsigned char*)eui64,8) == SETTINGS_STATUS_OK) { - PRINTD("->Set EEPROM MAC address\n"); - } -#if CONTIKI_CONF_RANDOM_MAC - return 1; -#else - return 0; -#endif -} -uint16_t -params_get_panid(void) { - uint16_t x; - size_t size = 2; - if (settings_get(SETTINGS_KEY_PAN_ID, 0,(unsigned char*)&x, &size) == SETTINGS_STATUS_OK) { - PRINTD("<-Get PAN ID of %04x\n",x); - } else { - x=PARAMS_PANID; - if (settings_add_uint16(SETTINGS_KEY_PAN_ID,x)==SETTINGS_STATUS_OK) { - PRINTD("->Set EEPROM PAN ID to %04x\n",x); - } - } - return x; -} -uint16_t -params_get_panaddr(void) { - uint16_t x; - size_t size = 2; - if (settings_get(SETTINGS_KEY_PAN_ADDR, 0,(unsigned char*)&x, &size) == SETTINGS_STATUS_OK) { - PRINTD("<-Get PAN address of %04x\n",x); - } else { - x=PARAMS_PANADDR; - if (settings_add_uint16(SETTINGS_KEY_PAN_ADDR,x)==SETTINGS_STATUS_OK) { - PRINTD("->Set EEPROM PAN address to %04x\n",x); - } - } - return x; -} -uint8_t -params_get_txpower(void) { - uint8_t x; - size_t size = 1; - if (settings_get(SETTINGS_KEY_TXPOWER, 0,(unsigned char*)&x, &size) == SETTINGS_STATUS_OK) { - PRINTD("<-Get tx power of %d (0=max)\n",x); - } else { - x=PARAMS_TXPOWER; - if (settings_add_uint8(SETTINGS_KEY_TXPOWER,x)==SETTINGS_STATUS_OK) { - PRINTD("->Set EEPROM tx power of %d (0=max)\n",x); - } - } - return x; -} -#endif /* CONTIKI_CONF_SETTINGS_MANAGER */ diff --git a/platform/osd-er-lp24/params.h b/platform/osd-er-lp24/params.h deleted file mode 100644 index 03c44db27..000000000 --- a/platform/osd-er-lp24/params.h +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef __PARAMS_H__ -#define __PARAMS_H__ -/* PARAMETER_STORAGE = - * 0 Hard coded, minmal program and eeprom usage. - * 1 Stored in fixed eeprom locations, rewritten from flash if corrupt. - * This allows parameter changes using a hardware programmer or custom application code. - * Corruption test is based on channel verify so get the channel before anything else! - * 2 Obtained from eeprom using the general settings manager and read from program flash if not present. - * Useful for for testing builds without wearing out flash memory. - * 3 Obtained from eeprom using the settings manager and rewritten from flash if not present. - * This ensures all parameters are present in upper eeprom flash. - * - * Note the parameters in this file can be changed without forcing a complete rebuild. - */ -#define CONTIKI_CONF_RANDOM_MAC 0 //adds 78 bytes -#define CONTIKI_CONF_SETTINGS_MANAGER 0 //adds 1696 bytes - -#if CONTIKI_CONF_SETTINGS_MANAGER -//#define PARAMETER_STORAGE 2 -#define PARAMETER_STORAGE 2 -#else -#define PARAMETER_STORAGE 1 -#endif - -/* Include settings.h, then dummy out the write routines */ -#include "settings.h" -#if PARAMETER_STORAGE==2 -#define settings_add(...) 0 -#define settings_add_uint8(...) 0 -#define settings_add_uint16(...) 0 -#endif - -#if AVR_WEBSERVER -/* Webserver builds can set some defaults in httpd-fsdata.c via makefsdata.h */ -extern uint8_t eemem_mac_address[8]; -extern uint8_t eemem_server_name[16]; -extern uint8_t eemem_domain_name[30]; -#endif - -#ifdef SERVER_NAME -#define PARAMS_SERVERNAME SERVER_NAME -#else -#define PARAMS_SERVERNAME "ATMEGA128rfa1" -#endif -#ifdef DOMAIN_NAME -#define PARAMS_DOMAINNAME DOMAIN_NAME -#else -#define PARAMS_DOMAINNAME "localhost" -#endif -#ifdef NODE_ID -#define PARAMS_NODEID NODE_ID -#else -#define PARAMS_NODEID 0 -#endif -#ifdef CHANNEL_802_15_4 -#define PARAMS_CHANNEL CHANNEL_802_15_4 -#else -#define PARAMS_CHANNEL 26 -#endif -#ifdef IEEE802154_PANID -#define PARAMS_PANID IEEE802154_PANID -#else -#define PARAMS_PANID 0xABCD -#endif -#ifdef IEEE802154_PANADDR -#define PARAMS_PANADDR IEEE802154_PANADDR -#else -#define PARAMS_PANADDR 0 -#endif -#ifdef RF230_MAX_TX_POWER -#define PARAMS_TXPOWER RF230_MAX_TX_POWER -#else -#define PARAMS_TXPOWER 0 -#endif -#ifdef EUI64_ADDRESS -#define PARAMS_EUI64ADDR EUI64_ADDRESS -#else -/* This form of of EUI64 mac allows full 6LoWPAN header compression from mac address */ -#if UIP_CONF_LL_802154 -//#define PARAMS_EUI64ADDR {0x02, 0xNN, 0xNN, 0xNN, 0xNN, 0xNN, 0xNN, 0xNN} -//#define PARAMS_EUI64ADDR {0x02, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x01} -#define PARAMS_EUI64ADDR {0x00, 0x21, 0x2e, 0xff, 0xff, 0x00, 0x1E, 0xFB} -#else -//#define PARAMS_EUI64ADDR {0x02, 0xNN, 0xNN, 0xff, 0xfe, 0xNN, 0xNN, 0xNN} -#define PARAMS_EUI64ADDR {0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x03} -#endif -/* This form of of EUI64 mac allows 16 bit 6LoWPAN header compression on multihops */ -//#define PARAMS_EUI64ADDR {0x02, 0x00, 0x00, 0xff, 0xfe, 0x00, 0xNN, 0xNN} -#endif - -uint8_t params_get_eui64(uint8_t *eui64); -#if PARAMETER_STORAGE==0 -/* Hard coded program flash parameters */ -#define params_get_servername(...) -#define params_get_nodeid(...) PARAMS_NODEID -#define params_get_channel(...) PARAMS_CHANNEL -#define params_get_panid(...) PARAMS_PANID -#define params_get_panaddr(...) PARAMS_PANADDR -#define params_get_txpower(...) PARAMS_TXPOWER -#else -/* Parameters stored in eeprom */ -uint16_t params_get_nodeid(void); -uint8_t params_get_channel(void); -uint16_t params_get_panid(void); -uint16_t params_get_panaddr(void); -uint8_t params_get_txpower(void); -#endif - -#endif /* __PARAMS_H__ */ diff --git a/platform/osd-er-lp24/slip_uart0.c b/platform/osd-er-lp24/slip_uart0.c deleted file mode 100644 index edff55385..000000000 --- a/platform/osd-er-lp24/slip_uart0.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2010, University of Colombo School of Computing - * 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. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``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 INSTITUTE OR CONTRIBUTORS 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. - * - * This file is part of the Contiki operating system. - * - * @(#)$$ - */ - -/** - * \file - * Machine dependent AVR SLIP routines for UART0. - * \author - * Kasun Hewage - */ - -#include -#include "contiki.h" -#include "dev/rs232.h" -#include "slip.h" - -/*---------------------------------------------------------------------------*/ -static int -slip_putchar(char c, FILE *stream) -{ -#define SLIP_END 0300 - static char debug_frame = 0; - - if (!debug_frame) { /* Start of debug output */ - slip_arch_writeb(SLIP_END); - slip_arch_writeb('\r'); /* Type debug line == '\r' */ - debug_frame = 1; - } - - slip_arch_writeb((unsigned char)c); - - /* - * Line buffered output, a newline marks the end of debug output and - * implicitly flushes debug output. - */ - if (c == '\n') { - slip_arch_writeb(SLIP_END); - debug_frame = 0; - } - - return c; -} -/*---------------------------------------------------------------------------*/ -static FILE slip_stdout = FDEV_SETUP_STREAM(slip_putchar, NULL, - _FDEV_SETUP_WRITE); -/*---------------------------------------------------------------------------*/ -void -slip_arch_init(unsigned long ubr) -{ - rs232_set_input(SLIP_PORT, slip_input_byte); - stdout = &slip_stdout; -} -/*---------------------------------------------------------------------------*/ -/* - XXX: - Currently, the following function is in cpu/avr/dev/rs232.c file. this - should be moved to here from there hence this is a platform specific slip - related function. -void -slip_arch_writeb(unsigned char c) -{ - rs232_send(RS232_PORT_0, c); -} -*/