Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP
Fork of SystemManagement by
Diff: IMD/IMD.h
- Revision:
- 30:91af74a299e1
- Parent:
- 24:f58a3c0071c3
- Child:
- 31:7eaa5e881b56
--- a/IMD/IMD.h Fri Nov 07 21:26:46 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-// copied idea from http://developer.mbed.org/forum/mbed/topic/466/?page=1#comment-2457
-
-#ifndef _FILE_IMD_H
-#define _FILE_IMD_H
-
-#include "mbed.h"
-#include "LPCDigitalIn.h"
-
-const float ZERO_HZ_TIMEOUT = 0.1; // Time (sec) that must pass without an edge to call it 0 Hz, set to greater than the longest expected pulse width
-
-enum EdgeT {
- RISING=5,
- FALLING=6,
- BOTH=7,
-};
-
-enum IMDstatus {
- OFF=0,
- NORMAL=1,
- UNDERVOLT=2,
- SPEEDSTART=3,
- ERROR=4,
- GROUNDERR=5,
- INVALID=6,
-};
-
-class IMD{
-public:
- IMD();
-
- char status();
- // Gets the insulation resistance reading
- // Returns 0 to 50,000,000 in normal/UV modes
- // Returns 0 or 50,000,000 in speed start (good/bad only)
- // -1 for invalid measurement (out of permissible range)
- // and NaN for not applicable mode
- float resistance();
-
- // Interrupt function for the edge type detected
- void edgeIRQ();
- // Used to zero (reset) the data on timeout
- void zeroIRQ();
-
-private:
- float frequency();
- float duty();
- volatile uint32_t startTime;
- volatile uint32_t widthTicks;
- volatile uint32_t periodTicks;
- volatile bool first;
-};
-
-#endif
\ No newline at end of file
