/* * MOIST.c * * * Author: Waylon Brunette * Date: created 10/26/01 * * Modified from PHOTO.c * *================================================================= * Header from PHOTO.c *================================================================= * PHOTO.c - TOS abstraction of asynchronous digital photo sensor * * "Copyright (c) 1000 and The Regents of the University * of California. All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice and the following * two paragraphs appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * * Authors: Jason Hill * modified: DEC 10/4/2000 function commented * */ #include "tos.h" #include "MOIST.h" #define MOIST_PORT 3 #define PWR_ON_WAIT_TIME 9000000 // used to be twice as much #define TOS_FRAME_TYPE MOIST_frame TOS_FRAME_BEGIN(MOIST_frame) { } TOS_FRAME_END(MOIST_frame); char TOS_COMMAND(MOIST_GET_DATA)(){ return TOS_CALL_COMMAND(SUB_ADC_GET_DATA)(MOIST_PORT); } TOS_TASK(MOIST_PWR_ON_WAIT){ unsigned long i; for(i = 0; i < PWR_ON_WAIT_TIME; i++) { } TOS_SIGNAL_EVENT(MOIST_SENS_READY)(); } char TOS_COMMAND(MOIST_INIT)(){ //ADC 3 cbi(PORTA, 3); // set pin to read cbi(DDRA, 3); // set port to be input return TOS_CALL_COMMAND(SUB_ADC_INIT)(); } char TOS_COMMAND(MOIST_PWR_ON)(){ //PW4 sbi(DDRD, 6); // make pin an output sbi(PORTD, 6); // make pin high // wait until reading stabilizes on the moisture sensor TOS_POST_TASK(MOIST_PWR_ON_WAIT); return 1; } char TOS_COMMAND(MOIST_PWR_OFF)(){ printf("THIS SHOULD TURN LOW"); cbi(PORTD, 6); // make pin low return 1; }