A fork of AR8000
Dependents: Sumo_v2 Sumo_v2_Unstable Sumo_v2_RG13
AR8000.h
- Committer:
- BlazeX
- Date:
- 2012-03-23
- Revision:
- 0:b08668430838
- Child:
- 1:a5bfae540999
File content as of revision 0:b08668430838:
//TODO: //- Ein Timer reicht. Mit read_us() kann zu jeder Zeit die Zeit festgestellt werden #pragma once //Interrupt-Callback Vorlage #define AR8000_RISE_FALL(Ch)\ void Rise##Ch()\ {\ LastRise[Ch]= Time.read_us();\ }\ void Fall##Ch()\ {\ int dT= Time.read_us() - LastRise[Ch];\ if(dT > 900 && dT < 2200)\ dTime[Ch]= dT;\ } class AR8000 { private: InterruptIn & ChInt0; //Interrupt-Handler fuer jeden Pin InterruptIn & ChInt1; InterruptIn & ChInt2; InterruptIn & ChInt3; InterruptIn & ChInt4; InterruptIn & ChInt5; InterruptIn & ChInt6; InterruptIn & ChInt7; Timer Time; //Timer for all 8 Channels volatile int LastRise[8]; //Zeitpunkt der letzten steigende Flanke volatile int dTime[8]; //Pulsdauer in us [1000...2000] public: //Das Ergebnis [0...1000], kann nach dem Update "gelesen werden" int Pos[8]; //Initialisieren AR8000(InterruptIn & ChInt0_, InterruptIn & ChInt1_, InterruptIn & ChInt2_, InterruptIn & ChInt3_, InterruptIn & ChInt4_, InterruptIn & ChInt5_, InterruptIn & ChInt6_, InterruptIn & ChInt7_); void Init(); //Interrupt-Callbacks definieren AR8000_RISE_FALL(0); AR8000_RISE_FALL(1); AR8000_RISE_FALL(2); AR8000_RISE_FALL(3); AR8000_RISE_FALL(4); AR8000_RISE_FALL(5); AR8000_RISE_FALL(6); AR8000_RISE_FALL(7); //Update-Methode void Update(); };