ads1115 only
Fork of mbed by
Diff: AnalogOut.h
- Revision:
- 44:24d45a770a51
- Parent:
- 43:e2ed12d17f06
- Child:
- 54:71b101360fb9
--- a/AnalogOut.h Fri Oct 26 17:40:46 2012 +0100 +++ b/AnalogOut.h Wed Nov 21 10:49:56 2012 +0000 @@ -1,18 +1,32 @@ -/* mbed Microcontroller Library - AnalogOut - * Copyright (c) 2006-2011 ARM Limited. All rights reserved. - */ - +/* mbed Microcontroller Library + * Copyright (c) 2006-2012 ARM Limited + * + * 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. + */ #ifndef MBED_ANALOGOUT_H #define MBED_ANALOGOUT_H -#include "device.h" +#include "platform.h" #if DEVICE_ANALOGOUT -#include "platform.h" -#include "PinNames.h" -#include "PeripheralNames.h" -#include "Base.h" +#include "analogout_api.h" namespace mbed { @@ -36,7 +50,7 @@ * } * @endcode */ -class AnalogOut : public Base { +class AnalogOut { public: @@ -44,23 +58,29 @@ * * @param AnalogOut pin to connect to (18) */ - AnalogOut(PinName pin, const char *name = NULL); + AnalogOut(PinName pin) { + analogout_init(&_dac, pin); + } /** Set the output voltage, specified as a percentage (float) * * @param value A floating-point value representing the output voltage, * specified as a percentage. The value should lie between * 0.0f (representing 0v / 0%) and 1.0f (representing 3.3v / 100%). - * Values outside this range will be saturated to 0.0f or 1.0f. + * Values outside this range will be saturated to 0.0f or 1.0f. */ - void write(float value); + void write(float value) { + analogout_write(&_dac, value); + } /** Set the output voltage, represented as an unsigned short in the range [0x0, 0xFFFF] * * @param value 16-bit unsigned short representing the output voltage, - * normalised to a 16-bit value (0x0000 = 0v, 0xFFFF = 3.3v) + * normalised to a 16-bit value (0x0000 = 0v, 0xFFFF = 3.3v) */ - void write_u16(unsigned short value); + void write_u16(unsigned short value) { + analogout_write_u16(&_dac, value); + } /** Return the current output voltage setting, measured as a percentage (float) * @@ -71,30 +91,33 @@ * * @note * This value may not match exactly the value set by a previous write(). - */ - float read(); - + */ + float read() { + return analogout_read(&_dac); + } #ifdef MBED_OPERATORS /** An operator shorthand for write() */ - AnalogOut& operator= (float percent); - AnalogOut& operator= (AnalogOut& rhs); + AnalogOut& operator= (float percent) { + write(percent); + return *this; + } + + AnalogOut& operator= (AnalogOut& rhs) { + write(rhs.read()); + return *this; + } /** An operator shorthand for read() - */ - operator float(); -#endif - -#ifdef MBED_RPC - virtual const struct rpc_method *get_rpc_methods(); - static struct rpc_class *get_rpc_class(); + */ + operator float() { + return read(); + } #endif protected: - - DACName _dac; - + dac_t _dac; }; } // namespace mbed