PikeAero::CInputTiming Class Reference

Implements input capture function as it relates to rotating shaft. More...

#include <cinputtiming.h>

Inheritance diagram for PikeAero::CInputTiming:

Inheritance graph
[legend]
Collaboration diagram for PikeAero::CInputTiming:

Collaboration graph
[legend]

Public Member Functions

 CInputTiming (CMachine::InterruptVector vector, TIM_TypeDef *TIMx, bool invertA=false, bool invertB=false, CMachine::ubit16 countPerRevA=1, CMachine::ubit16 countPerRevB=1, CMachine::ubit32 freqency=BASE_TIMER_FREQUENCY)
 Constructor. Target counter frequency is expressed in Hz, default is 2MHz counter.
CMachine::ubit16 countA ()
 current timing count
CMachine::ubit16 countB ()
CMachine::ubit16 countPerRevA ()
 timing count per revolution (360 degrees).
CMachine::ubit16 countPerRevB ()
virtual void irq (CMachine::InterruptVector v)
 receive a hardware interrupt
void setCountPerRevA (CMachine::ubit16 countPerRev)
 set timing count pre revolution (360 degrees).
void setCountPerRevB (CMachine::ubit16 countPerRev)
virtual ~CInputTiming ()

Protected Member Functions

void setCountA (CMachine::ubit16 countA)
void setCountB (CMachine::ubit16 countB)

Private Attributes

CMachine::ubit16 mCountA
CMachine::ubit16 mCountB
CMachine::ubit16 mCountPerRevA
CMachine::ubit16 mCountPerRevB

Detailed Description

Implements input capture function as it relates to rotating shaft.

Author:
Michael Sharkey <mike@pikeaero.com>

Definition at line 31 of file cinputtiming.h.


Constructor & Destructor Documentation

PikeAero::CInputTiming::CInputTiming ( CMachine::InterruptVector  vector,
TIM_TypeDef TIMx,
bool  invertA = false,
bool  invertB = false,
CMachine::ubit16  countPerRevA = 1,
CMachine::ubit16  countPerRevB = 1,
CMachine::ubit32  freqency = BASE_TIMER_FREQUENCY 
)

Constructor. Target counter frequency is expressed in Hz, default is 2MHz counter.

Definition at line 26 of file cinputtiming.cpp.

00035 : inherited(vector,TIMx,invertA,invertB,frequency)
00036 , mCountPerRevA(countPerRevA)
00037 , mCountPerRevB(countPerRevB)
00038 , mCountA(0)
00039 , mCountB(0)
00040 {
00041 }

PikeAero::CInputTiming::~CInputTiming (  )  [virtual]

Definition at line 44 of file cinputtiming.cpp.

00045 {
00046 }


Member Function Documentation

CMachine::ubit16 PikeAero::CInputTiming::countA (  )  [inline]

current timing count

Definition at line 63 of file cinputtiming.h.

References mCountA.

00063 {return mCountA;}

CMachine::ubit16 PikeAero::CInputTiming::countB (  )  [inline]

Definition at line 64 of file cinputtiming.h.

References mCountB.

00064 {return mCountB;}

CMachine::ubit16 PikeAero::CInputTiming::countPerRevA (  )  [inline]

timing count per revolution (360 degrees).

Definition at line 57 of file cinputtiming.h.

References mCountPerRevA.

Referenced by PikeAero::CTaskAggregator::calculateRPM().

00057 {return mCountPerRevA;}

Here is the caller graph for this function:

CMachine::ubit16 PikeAero::CInputTiming::countPerRevB (  )  [inline]

Definition at line 58 of file cinputtiming.h.

References mCountPerRevB.

Referenced by PikeAero::CTaskAggregator::calculateRPM().

00058 {return mCountPerRevB;}

Here is the caller graph for this function:

void PikeAero::CInputTiming::irq ( CMachine::InterruptVector  v  )  [virtual]

receive a hardware interrupt

Input Capture Flag A

Input Capture Flag B

Reimplemented from PikeAero::CBinaryInputCapture.

Reimplemented in PikeAero::CInputTimingToothCounter.

Definition at line 51 of file cinputtiming.cpp.

References mCountA, mCountB, mCountPerRevA, mCountPerRevB, PikeAero::CBinaryInputCapture::statusRegister(), TIM_ICFA, and TIM_ICFB.

00052 {
00053     inherited::irq(v);
00054 
00055     /** Input Capture Flag A */
00056     if ( statusRegister() & TIM_ICFA )
00057     {
00058         if ( ++mCountA > mCountPerRevA )
00059         {
00060             mCountA = 1;
00061         }
00062     }
00063 
00064     /** Input Capture Flag B */
00065     if ( statusRegister() & TIM_ICFB )
00066     {
00067         if ( ++mCountB > mCountPerRevB )
00068         {
00069             mCountB = 1;
00070         }
00071     }
00072 
00073 }

Here is the call graph for this function:

void PikeAero::CInputTiming::setCountA ( CMachine::ubit16  countA  )  [inline, protected]

Definition at line 73 of file cinputtiming.h.

References mCountA.

Referenced by PikeAero::CInputTimingToothCounter::callback().

00073 {mCountA=countA;}

Here is the caller graph for this function:

void PikeAero::CInputTiming::setCountB ( CMachine::ubit16  countB  )  [inline, protected]

Definition at line 74 of file cinputtiming.h.

References mCountB.

Referenced by PikeAero::CInputTimingToothCounter::callback().

00074 {mCountB=countB;}

Here is the caller graph for this function:

void PikeAero::CInputTiming::setCountPerRevA ( CMachine::ubit16  countPerRev  )  [inline]

set timing count pre revolution (360 degrees).

Definition at line 51 of file cinputtiming.h.

References mCountPerRevA.

00051 {mCountPerRevA=countPerRev;}

void PikeAero::CInputTiming::setCountPerRevB ( CMachine::ubit16  countPerRev  )  [inline]

Definition at line 52 of file cinputtiming.h.

References mCountPerRevB.

00052 {mCountPerRevB=countPerRev;}


Field Documentation

Definition at line 80 of file cinputtiming.h.

Referenced by countA(), irq(), and setCountA().

Definition at line 81 of file cinputtiming.h.

Referenced by countB(), irq(), and setCountB().

Definition at line 78 of file cinputtiming.h.

Referenced by countPerRevA(), irq(), and setCountPerRevA().

Definition at line 79 of file cinputtiming.h.

Referenced by countPerRevB(), irq(), and setCountPerRevB().


The documentation for this class was generated from the following files:

Generated on Sun Oct 25 14:00:04 2009 for stingray3 by  doxygen 1.5.8