Interface class for the Max Botix ultrasonic range finder model 1210. It includes input methods for PWM, Analog, and Serial. A PwmIn class was created to allow the PWM input to be read. Now includes automatic range update via interrupts.

Dependencies:   mbed

Committer:
Blaze513
Date:
Sat Aug 28 07:59:29 2010 +0000
Revision:
4:a615b75d4126
Parent:
2:997b4057c879

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Blaze513 2:997b4057c879 1 //mbed Microcontroller Library
Blaze513 2:997b4057c879 2 //Pulse Width Modulation Input Interface
Blaze513 2:997b4057c879 3 //Copyright 2010
Blaze513 2:997b4057c879 4 //Thomas Hamilton
Blaze513 2:997b4057c879 5
Blaze513 0:3d969e0b4ca0 6 #ifndef PwmInLibrary
Blaze513 0:3d969e0b4ca0 7 #define PwmInLibrary
Blaze513 0:3d969e0b4ca0 8
Blaze513 0:3d969e0b4ca0 9 #include "stdint.h"
Blaze513 0:3d969e0b4ca0 10 #include "mbed.h"
Blaze513 0:3d969e0b4ca0 11
Blaze513 0:3d969e0b4ca0 12 class PwmIn : private InterruptIn, Timer
Blaze513 0:3d969e0b4ca0 13 {
Blaze513 0:3d969e0b4ca0 14 private:
Blaze513 0:3d969e0b4ca0 15 unsigned int PeriodMeasurement;
Blaze513 0:3d969e0b4ca0 16 unsigned int PulseWidthMeasurement;
Blaze513 0:3d969e0b4ca0 17
Blaze513 0:3d969e0b4ca0 18 void PulseStart();
Blaze513 0:3d969e0b4ca0 19 void PulseStop();
Blaze513 2:997b4057c879 20
Blaze513 0:3d969e0b4ca0 21 public:
Blaze513 0:3d969e0b4ca0 22 PwmIn(PinName pwi);
Blaze513 0:3d969e0b4ca0 23 float read();
Blaze513 0:3d969e0b4ca0 24 float period();
Blaze513 0:3d969e0b4ca0 25 int period_ms();
Blaze513 0:3d969e0b4ca0 26 int period_us();
Blaze513 0:3d969e0b4ca0 27 float pulsewidth();
Blaze513 0:3d969e0b4ca0 28 int pulsewidth_ms();
Blaze513 0:3d969e0b4ca0 29 int pulsewidth_us();
Blaze513 0:3d969e0b4ca0 30 };
Blaze513 0:3d969e0b4ca0 31
Blaze513 0:3d969e0b4ca0 32 #endif