aboutsummaryrefslogtreecommitdiffstats
path: root/Projects/AVRISP/Lib/ISPProtocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'Projects/AVRISP/Lib/ISPProtocol.h')
-rw-r--r--Projects/AVRISP/Lib/ISPProtocol.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/Projects/AVRISP/Lib/ISPProtocol.h b/Projects/AVRISP/Lib/ISPProtocol.h
index 4bbffbbd1..85a669a4e 100644
--- a/Projects/AVRISP/Lib/ISPProtocol.h
+++ b/Projects/AVRISP/Lib/ISPProtocol.h
@@ -64,6 +64,26 @@
#define PROG_MODE_PAGED_READYBUSY_MASK (1 << 6)
#define PROG_MODE_COMMIT_PAGE_MASK (1 << 7)
+ /* Inline Functions: */
+ /** Blocking delay for a given number of milliseconds, via a hardware timer.
+ *
+ * \param[in] DelayMS Number of milliseconds to delay for
+ */
+ static inline void ISPProtocol_DelayMS(uint8_t DelayMS)
+ {
+ TCNT0 = 0;
+ TIFR0 = (1 << OCF1A);
+
+ while (DelayMS)
+ {
+ if (TIFR0 & (1 << OCF1A))
+ {
+ TIFR0 = (1 << OCF1A);
+ DelayMS--;
+ }
+ }
+ }
+
/* Function Prototypes: */
void ISPProtocol_EnterISPMode(void);
void ISPProtocol_LeaveISPMode(void);