optriac sensors use Arduino API

This commit is contained in:
Harald Pichler 2014-07-14 20:31:04 +02:00
parent f7e987cbeb
commit 42d3b38c9c
5 changed files with 24 additions and 179 deletions

View file

@ -18,7 +18,7 @@ CONTIKI_TARGET_SOURCEFILES += battery-sensor.c batmon.c
#Needed for PIR
CONTIKI_TARGET_SOURCEFILES += pir-sensor.c
#Needed for OPTRIAC
CONTIKI_TARGET_SOURCEFILES += optriac.c optriac-sensor.c
CONTIKI_TARGET_SOURCEFILES += optriac-sensor.c
CONTIKIAVR=$(CONTIKI)/cpu/avr
#Needed for SERVO
CONTIKI_TARGET_SOURCEFILES += servo.c servo-sensor.c

View file

@ -37,7 +37,7 @@
*/
#include "contiki.h"
#include "dev/optriac.h"
#include "Arduino.h"
#include "dev/optriac-sensor.h"
#define PRINTF(...) printf(__VA_ARGS__)
@ -45,22 +45,14 @@
const struct sensors_sensor optriac_sensor;
static int status(int type);
static int enabled = 0;
static int optriac1=0;
static int optriac2=0;
static int optriac[2]={0,0};
static int optriacpin[8]={OPTRIAC_PIN_1,OPTRIAC_PIN_2};
/*---------------------------------------------------------------------------*/
static int
value(int type)
{
switch(type) {
case OPTRIAC_SENSOR_A:
return optriac1;
/* Total Solar Radiation. */
case OPTRIAC_SENSOR_B:
return optriac2;
}
return 0;
return optriac[type];
}
/*---------------------------------------------------------------------------*/
static int
@ -70,32 +62,30 @@ configure(int type, int c)
case SENSORS_ACTIVE:
if(c) {
if(!status(SENSORS_ACTIVE)) {
pinMode(optriacpin[OPTRIAC_SENSOR_1], OUTPUT);
digitalWrite(optriacpin[OPTRIAC_SENSOR_1], LOW);
pinMode(optriacpin[OPTRIAC_SENSOR_2], OUTPUT);
digitalWrite(optriacpin[OPTRIAC_SENSOR_2], LOW);
enabled = 1;
}
} else {
enabled = 1;
}
break;
case OPTRIAC_SENSOR_A:
case OPTRIAC_SENSOR_1:
case OPTRIAC_SENSOR_2:
if(c==0){
optriac1_off();
optriac1=0;
digitalWrite(optriacpin[type], LOW);
optriac[type]=0;
}else{
optriac1_on();
optriac1=1;
};
break;
case OPTRIAC_SENSOR_B:
if(c==0){
optriac2_off();
optriac2=0;
}else{
optriac2_on();
optriac2=1;
digitalWrite(optriacpin[type], HIGH);
optriac[type]=1;
};
break;
}
return 0;
return 0;
}
/*---------------------------------------------------------------------------*/
static int

View file

@ -44,7 +44,11 @@
extern const struct sensors_sensor optriac_sensor;
#define OPTRIAC_SENSOR "TRIAC"
#define OPTRIAC_SENSOR_A 0
#define OPTRIAC_SENSOR_B 1
#define OPTRIAC_SENSOR_1 0
#define OPTRIAC_SENSOR_2 1
/* default pins Arduino-Merkurboard */
#define OPTRIAC_PIN_1 2
#define OPTRIAC_PIN_2 3
#endif /* __OPTRIAC_SENSOR_H__ */

View file

@ -1,95 +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 "optriac.h"
/**
* \addtogroup relay
* \{
*/
/*---------------------------------------------------------------------------*/
/**
* \brief Turns the TRIAC 1 off.
* old D6 D7
* new E3 E4
*/
void
optriac1_off(void)
{
DDRE |= (1<<PINE3);
PORTE &= ~(1<<PINE3);
}
/*---------------------------------------------------------------------------*/
/**
* \brief Turns the TRIAC 1 on.
*/
void
optriac1_on(void)
{
DDRE |= (1<<PINE3);
PORTE |= (1<<PINE3);
}
/*---------------------------------------------------------------------------*/
/**
* \brief Turns the Raven TRIAC 2 off.
*/
void
optriac2_off(void)
{
DDRE |= (1<<PINE4);
PORTE &= ~(1<<PINE4);
}
/*---------------------------------------------------------------------------*/
/**
* \brief Turns the Raven TRIAC 2 on.
*/
void
optriac2_on(void)
{
DDRE |= (1<<PINE4);
PORTE |= (1<<PINE4);
}
/*---------------------------------------------------------------------------*/

View file

@ -1,54 +0,0 @@
/*
* Copyright (c) 2013 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 optotriac support.
*
* \author
* Harald Pichler harald@the-develop.net
*
*/
#ifndef __TRIAC_H__
#define __TRIAC_H__
#include <avr/io.h>
/** @name TRIAC Functions */
/** @{ */
void optriac1_on(void);
void optriac1_off(void);
void optriac2_on(void);
void optriac2_off(void);
/** @} */
#endif /* __TRIAC_H__ */