Library to simplify using capture pins on hardware.

Dependents:   bluesync

When I first started experimenting with the notion of capture pins, I had no idea where to begin. Rather than write to registers in every single program, I decided to create a class that'd handle that heavy lifting for me!

Import library

Public Member Functions

TimerCapture (PinName pCapturePin)
Configures registers to use the given pin as a capture pin.
uint32_t getTime ()
Get the time captured by the capture pin's register.

Static Public Member Functions

static void startTimer ()
Starts the TIMER2 timer, and configures it if it's not already configured.
static bool isRunning ()
Checks if the TIMER2 timer is running.
static void stopTimer ()
Stops the TIMER2 timer.
static void resetTimer ()
Resets the TIMER2 timer.

This code uses TIMER2 on the LPC1768. I have no idea if it will work on other hardware, but I hope it helps someone else!

Revision:
2:7c4ca945bfe1
Parent:
1:660af7d3c416
Child:
3:4c06a8b54655
--- a/TimerCapture.h	Thu May 21 08:11:06 2015 +0000
+++ b/TimerCapture.h	Thu May 21 08:30:25 2015 +0000
@@ -8,8 +8,8 @@
 
 /** A class that will start TIMER2 on the LPC1768 and configure it to use one of the two capture pins (p29 or p30). 
 * Capture pins allow the hardware to "timestamp" when a pin goes high or low, depending on the configuration. For more information, consult the 
-* [LPC1768 user manual](http://www.nxp.com/documents/user_manual/UM10360.pdf).
-* # Example
+* <a href="http://www.nxp.com/documents/user_manual/UM10360.pdf">LPC1768 user manual</a>.
+* <h2>Example</h2>
 * @code
 * #include "mbed.h"
 * #include "TimerCapture.h"
@@ -31,7 +31,7 @@
 * @endcode
 *
 * @attention Because this code operates directly on TIMER2, it has the potential to (a) mess with existing code or (b) cause errors when you instantiate too many objects. 
-* Make sure to read this documentation thoroughly, else you may find yourself staring at [lights of death](https://developer.mbed.org/handbook/Debugging#runtime-errors)!
+* Make sure to read this documentation thoroughly, else you may find yourself staring at <a href="https://developer.mbed.org/handbook/Debugging#runtime-errors">lights of death</a>!
 */
 class TimerCapture {
 
@@ -44,9 +44,11 @@
     * @attention *There are only two pins that will act as capture pins for TIMER2.* These are P0.4 (DIP p30) and P0.5(DIP p29). 
     *
     * @warning This will cause a runtime error if: 
-    * + The `capture_pin` is not set to an actual capture pin on the LPC1768.
-    * + The specified capture pin is already in use (i.e. already configured). 
-    *
+    *<ul>
+    * <li>The `capture_pin` is not set to an actual capture pin on the LPC1768.
+    * <li>The specified capture pin is already in use (i.e. already configured). 
+    * <li>The timer hasn't yet been started (i.e. peripheral is off)
+    *</ul>
     * @param pCapturePin The PinName intended to be used for the capture.
     */
     TimerCapture(PinName pCapturePin);