Eurobot 2013 IR testbench

Dependencies:   mbed-rtos mbed

Committer:
xiaxia686
Date:
Wed Nov 14 18:44:03 2012 +0000
Revision:
1:818904abef3d
Parent:
0:5ebe36076172
Working PWM;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xiaxia686 1:818904abef3d 1 /* mbed PwmIn Library
xiaxia686 1:818904abef3d 2 * Copyright (c) 2008-2010, sford
xiaxia686 1:818904abef3d 3 *
xiaxia686 1:818904abef3d 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
xiaxia686 1:818904abef3d 5 * of this software and associated documentation files (the "Software"), to deal
xiaxia686 1:818904abef3d 6 * in the Software without restriction, including without limitation the rights
xiaxia686 1:818904abef3d 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
xiaxia686 1:818904abef3d 8 * copies of the Software, and to permit persons to whom the Software is
xiaxia686 1:818904abef3d 9 * furnished to do so, subject to the following conditions:
xiaxia686 1:818904abef3d 10 *
xiaxia686 1:818904abef3d 11 * The above copyright notice and this permission notice shall be included in
xiaxia686 1:818904abef3d 12 * all copies or substantial portions of the Software.
xiaxia686 1:818904abef3d 13 *
xiaxia686 1:818904abef3d 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
xiaxia686 1:818904abef3d 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
xiaxia686 1:818904abef3d 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
xiaxia686 1:818904abef3d 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
xiaxia686 1:818904abef3d 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
xiaxia686 1:818904abef3d 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
xiaxia686 1:818904abef3d 20 * THE SOFTWARE.
xiaxia686 1:818904abef3d 21 */
xiaxia686 1:818904abef3d 22
xiaxia686 1:818904abef3d 23 #ifndef MBED_PWMIN_H
xiaxia686 1:818904abef3d 24 #define MBED_PWMIN_H
xiaxia686 1:818904abef3d 25
xiaxia686 1:818904abef3d 26 #include "mbed.h"
xiaxia686 1:818904abef3d 27
xiaxia686 1:818904abef3d 28 /** PwmIn class to read PWM inputs
xiaxia686 1:818904abef3d 29 *
xiaxia686 1:818904abef3d 30 * Uses InterruptIn to measure the changes on the input
xiaxia686 1:818904abef3d 31 * and record the time they occur
xiaxia686 1:818904abef3d 32 *
xiaxia686 1:818904abef3d 33 * @note uses InterruptIn, so not available on p19/p20
xiaxia686 1:818904abef3d 34 */
xiaxia686 1:818904abef3d 35 class DummyCT;
xiaxia686 1:818904abef3d 36
xiaxia686 1:818904abef3d 37 class PwmIn {
xiaxia686 1:818904abef3d 38 public:
xiaxia686 1:818904abef3d 39 /** Create a PwmIn
xiaxia686 1:818904abef3d 40 *
xiaxia686 1:818904abef3d 41 * @param p The pwm input pin (must support InterruptIn)
xiaxia686 1:818904abef3d 42 */
xiaxia686 1:818904abef3d 43 PwmIn(PinName p);
xiaxia686 1:818904abef3d 44
xiaxia686 1:818904abef3d 45 /** Read the current period
xiaxia686 1:818904abef3d 46 *
xiaxia686 1:818904abef3d 47 * @returns the period in seconds
xiaxia686 1:818904abef3d 48 */
xiaxia686 1:818904abef3d 49 float period();
xiaxia686 1:818904abef3d 50
xiaxia686 1:818904abef3d 51 /** Read the current pulsewidth
xiaxia686 1:818904abef3d 52 *
xiaxia686 1:818904abef3d 53 * @returns the pulsewidth in seconds
xiaxia686 1:818904abef3d 54 */
xiaxia686 1:818904abef3d 55 float pulsewidth();
xiaxia686 1:818904abef3d 56
xiaxia686 1:818904abef3d 57 /** Read the current dutycycle
xiaxia686 1:818904abef3d 58 *
xiaxia686 1:818904abef3d 59 * @returns the dutycycle as a percentage, represented between 0.0-1.0
xiaxia686 1:818904abef3d 60 */
xiaxia686 1:818904abef3d 61 float dutycycle();
xiaxia686 1:818904abef3d 62
xiaxia686 1:818904abef3d 63 /** A assigns a callback function when a new reading is available **/
xiaxia686 1:818904abef3d 64 void (*callbackfunc)(float dutycycle);
xiaxia686 1:818904abef3d 65 DummyCT* callbackobj;
xiaxia686 1:818904abef3d 66 void (DummyCT::*mcallbackfunc)(float dutycycle);
xiaxia686 1:818904abef3d 67
xiaxia686 1:818904abef3d 68
xiaxia686 1:818904abef3d 69 protected:
xiaxia686 1:818904abef3d 70 void rise();
xiaxia686 1:818904abef3d 71 void fall();
xiaxia686 1:818904abef3d 72
xiaxia686 1:818904abef3d 73 InterruptIn _p;
xiaxia686 1:818904abef3d 74 Timer _t;
xiaxia686 1:818904abef3d 75 float _pulsewidth, _period;
xiaxia686 1:818904abef3d 76 };
xiaxia686 1:818904abef3d 77
xiaxia686 1:818904abef3d 78 #endif