aboutsummaryrefslogtreecommitdiffstats
path: root/wirish/HardwareTimer.h
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@mit.edu>2010-12-21 10:27:37 -0500
committerMarti Bolivar <mbolivar@mit.edu>2010-12-21 10:27:37 -0500
commitc45bccad44187da27505cf5808424e709e3f54a1 (patch)
tree18a459a50f8d0551ba046e30462c93999d982725 /wirish/HardwareTimer.h
parent84fd2532a7f23d20354ff590790b3f892cb7e7d7 (diff)
parentd5ad2a27f4e69e6cc9324331945937c983c30366 (diff)
downloadlibrambutan-c45bccad44187da27505cf5808424e709e3f54a1.tar.gz
librambutan-c45bccad44187da27505cf5808424e709e3f54a1.zip
Merge branch 'master' into debug-serialusb.
Chose debug-serialusb version in cases of conflict. Conflicts: libmaple/usb/usb_callbacks.c
Diffstat (limited to 'wirish/HardwareTimer.h')
-rw-r--r--wirish/HardwareTimer.h69
1 files changed, 41 insertions, 28 deletions
diff --git a/wirish/HardwareTimer.h b/wirish/HardwareTimer.h
index c72175f..4034b1f 100644
--- a/wirish/HardwareTimer.h
+++ b/wirish/HardwareTimer.h
@@ -89,7 +89,7 @@ class HardwareTimer {
*
* Note that there is some function call overhead associated with
* using this method, so using it in concert with
- * HardwareTimer::resume() is not a robust way to align multiple
+ * HardwareTimer::pause() is not a robust way to align multiple
* timers to the same count value.
*
* @see HardwareTimer::pause()
@@ -103,7 +103,7 @@ class HardwareTimer {
uint16 getPrescaleFactor();
/**
- * Set the timer prescale.
+ * Set the timer's prescale factor.
*
* The prescaler acts as a clock divider to slow down the rate at
* which the counter increments.
@@ -155,7 +155,7 @@ class HardwareTimer {
* Set the current timer count.
*
* Note that there is some function call overhead associated with
- * callign this method, so using it is not a robust way to get
+ * calling this method, so using it is not a robust way to get
* multiple timers to share a count value.
*
* @param val The new count value to set. If this value exceeds
@@ -184,10 +184,6 @@ class HardwareTimer {
/**
* Set the given channel of this timer to the given mode.
*
- * Note: Timer1.setChannel1Mode(TIMER_PWM) may not work as
- * expected; if you want PWM functionality on a channel make sure
- * you don't set it to something else!
- *
* @param channel Timer channel, from 1 to 4
* @param mode Mode to set
*/
@@ -228,24 +224,24 @@ class HardwareTimer {
*/
uint16 getCompare(int channel);
- /** Like getCompare(1) */
+ /** Equivalent to getCompare(1) */
uint16 getCompare1();
- /** Like getCompare(2) */
+ /** Equivalent to getCompare(2) */
uint16 getCompare2();
- /** Like getCompare(3) */
+ /** Equivalent to getCompare(3) */
uint16 getCompare3();
- /** Like getCompare(4) */
+ /** Equivalent to getCompare(4) */
uint16 getCompare4();
/**
* Sets the compare value for the given channel.
*
* When the counter reaches this value the interrupt for this
- * channel will fire if channel 1 mode is TIMER_OUTPUTCOMPARE and
- * an interrupt is attached.
+ * channel will fire if the channel mode is TIMER_OUTPUTCOMPARE
+ * and an interrupt is attached.
*
* By default, this only changes the relative offsets between
* events on a single timer ("phase"); they don't control the
@@ -259,32 +255,33 @@ class HardwareTimer {
* few microseconds.
*
* @param channel the channel whose compare to set, from 1 to 4.
- * @param val The compare value to set. If greater than this
- * timer's overflow value, it will be truncated to the
- * overflow value.
+ * @param compare The compare value to set. If greater than this
+ * timer's overflow value, it will be truncated to
+ * the overflow value.
*
* @see TimerMode
* @see HardwareTimer::setChannelMode()
+ * @see HardwareTimer::attachInterrupt()
*/
void setCompare(int channel, uint16 compare);
/**
- * Like setCompare(1, compare).
+ * Equivalent to setCompare(1, compare).
*/
void setCompare1(uint16 compare);
/**
- * Like setCompare(2, compare).
+ * Equivalent to setCompare(2, compare).
*/
void setCompare2(uint16 compare);
/**
- * Like setCompare(3, compare).
+ * Equivalent to setCompare(3, compare).
*/
void setCompare3(uint16 compare);
/**
- * Like setCompare(4, compare).
+ * Equivalent to setCompare(4, compare).
*/
void setCompare4(uint16 compare);
@@ -313,25 +310,25 @@ class HardwareTimer {
void attachInterrupt(int channel, voidFuncPtr handler);
/**
- * Like attachCompareInterrupt(1, handler).
+ * Equivalent to attachCompareInterrupt(1, handler).
* @see HardwareTimer::attachCompareInterrupt()
*/
void attachCompare1Interrupt(voidFuncPtr handler);
/**
- * Like attachCompareInterrupt(2, handler).
+ * Equivalent to attachCompareInterrupt(2, handler).
* @see HardwareTimer::attachCompareInterrupt()
*/
void attachCompare2Interrupt(voidFuncPtr handler);
/**
- * Like attachCompareInterrupt(3, handler).
+ * Equivalent to attachCompareInterrupt(3, handler).
* @see HardwareTimer::attachCompareInterrupt()
*/
void attachCompare3Interrupt(voidFuncPtr handler);
/**
- * Like attachCompareInterrupt(4, handler).
+ * Equivalent to attachCompareInterrupt(4, handler).
* @see HardwareTimer::attachCompareInterrupt()
*/
void attachCompare4Interrupt(voidFuncPtr handler);
@@ -346,25 +343,25 @@ class HardwareTimer {
void detachInterrupt(int channel);
/**
- * Like detachInterrupt(1).
+ * Equivalent to detachInterrupt(1).
* @see HardwareTimer::detachInterrupt()
*/
void detachCompare1Interrupt(void);
/**
- * Like detachInterrupt(2).
+ * Equivalent to detachInterrupt(2).
* @see HardwareTimer::detachInterrupt()
*/
void detachCompare2Interrupt(void);
/**
- * Like detachInterrupt(3).
+ * Equivalent to detachInterrupt(3).
* @see HardwareTimer::detachInterrupt()
*/
void detachCompare3Interrupt(void);
/**
- * Like detachInterrupt(4).
+ * Equivalent to detachInterrupt(4).
* @see HardwareTimer::detachInterrupt()
*/
void detachCompare4Interrupt(void);
@@ -394,6 +391,22 @@ extern HardwareTimer Timer5;
extern HardwareTimer Timer8;
#endif
+/**
+ * Get one of the pre-instantiated HardwareTimer instances, given a
+ * timer device number.
+ *
+ * Be careful not to pass an actual number to this function. For
+ * example, getTimer(1) will not return Timer1. Use a real
+ * timer_dev_num, e.g. TIMER1, TIMER2, etc.
+ *
+ * @param timerNum the timer device number, e.g. TIMER1.
+ *
+ * @return Pointer to the HardwareTimer instance corresponding to the
+ * given timer device number. If timerNum is TIMER_INVALID, returns a
+ * null pointer.
+ *
+ * @see timer_dev_num
+ */
HardwareTimer* getTimer(timer_dev_num timerNum);
#endif