mbed libraries for KL25Z
Diff: PwmOut.h
- Revision:
- 9:663789d7729f
- Parent:
- 8:c14af7958ef5
--- a/PwmOut.h Fri Nov 09 11:33:53 2012 +0000 +++ b/PwmOut.h Mon Feb 18 09:41:56 2013 +0000 @@ -1,5 +1,17 @@ -/* mbed Microcontroller Library - PwmOut - * Copyright (c) 2007-2011 ARM Limited. All rights reserved. +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #ifndef MBED_PWMOUT_H #define MBED_PWMOUT_H @@ -19,7 +31,7 @@ * #include "mbed.h" * * PwmOut led(LED1); - * + * * int main() { * while(1) { * led = led + 0.01; @@ -46,70 +58,97 @@ * * @param pin PwmOut pin to connect to */ - PwmOut(PinName pin); + PwmOut(PinName pin) { + pwmout_init(&_pwm, pin); + } /** Set the ouput duty-cycle, specified as a percentage (float) * - * @param value A floating-point value representing the output duty-cycle, + * @param value A floating-point value representing the output duty-cycle, * specified as a percentage. The value should lie between * 0.0f (representing on 0%) and 1.0f (representing on 100%). * Values outside this range will be saturated to 0.0f or 1.0f. */ - void write(float value); + void write(float value) { + pwmout_write(&_pwm, value); + } /** Return the current output duty-cycle setting, measured as a percentage (float) * * @returns - * A floating-point value representing the current duty-cycle being output on the pin, + * A floating-point value representing the current duty-cycle being output on the pin, * measured as a percentage. The returned value will lie between * 0.0f (representing on 0%) and 1.0f (representing on 100%). * * @note * This value may not match exactly the value set by a previous <write>. */ - float read(); - + float read() { + return pwmout_read(&_pwm); + } + /** Set the PWM period, specified in seconds (float), keeping the duty cycle the same. * * @note * The resolution is currently in microseconds; periods smaller than this * will be set to zero. */ - void period(float seconds); + void period(float seconds) { + pwmout_period(&_pwm, seconds); + } /** Set the PWM period, specified in milli-seconds (int), keeping the duty cycle the same. */ - void period_ms(int ms); + void period_ms(int ms) { + pwmout_period_ms(&_pwm, ms); + } /** Set the PWM period, specified in micro-seconds (int), keeping the duty cycle the same. */ - void period_us(int us); + void period_us(int us) { + pwmout_period_us(&_pwm, us); + } /** Set the PWM pulsewidth, specified in seconds (float), keeping the period the same. */ - void pulsewidth(float seconds); + void pulsewidth(float seconds) { + pwmout_pulsewidth(&_pwm, seconds); + } /** Set the PWM pulsewidth, specified in milli-seconds (int), keeping the period the same. */ - void pulsewidth_ms(int ms); + void pulsewidth_ms(int ms) { + pwmout_pulsewidth_ms(&_pwm, ms); + } /** Set the PWM pulsewidth, specified in micro-seconds (int), keeping the period the same. */ - void pulsewidth_us(int us); + void pulsewidth_us(int us) { + pwmout_pulsewidth_us(&_pwm, us); + } #ifdef MBED_OPERATORS /** A operator shorthand for write() */ - PwmOut& operator= (float value); - PwmOut& operator= (PwmOut& rhs); - + PwmOut& operator= (float value) { + write(value); + return *this; + } + + PwmOut& operator= (PwmOut& rhs) { + write(rhs.read()); + return *this; + } + /** An operator shorthand for read() */ - operator float(); + operator float() { + return read(); + } #endif protected: - pwmout_object _pwm; + pwmout_t _pwm; }; } // namespace mbed