]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - lib/lufa/Projects/Webserver/Lib/uip/clock.c
Merge commit '60b30c036397cb5627fa374bb930794b225daa29' as 'lib/lufa'
[qmk_firmware.git] / lib / lufa / Projects / Webserver / Lib / uip / clock.c
diff --git a/lib/lufa/Projects/Webserver/Lib/uip/clock.c b/lib/lufa/Projects/Webserver/Lib/uip/clock.c
new file mode 100644 (file)
index 0000000..e71f720
--- /dev/null
@@ -0,0 +1,37 @@
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <LUFA/Common/Common.h>
+
+#include "clock.h"
+
+//Counted time
+volatile clock_time_t clock_datetime = 0;
+
+//Overflow interrupt
+ISR(TIMER1_COMPA_vect, ISR_BLOCK)
+{
+       clock_datetime += 1;
+}
+
+//Initialise the clock
+void clock_init()
+{
+       OCR1A  = (((F_CPU / 1024) / 100) - 1);
+       TCCR1B = ((1 << WGM12) | (1 << CS12) | (1 << CS10));
+       TIMSK1 = (1 << OCIE1A);
+}
+
+//Return time
+clock_time_t clock_time()
+{
+       clock_time_t time;
+
+       GlobalInterruptDisable();
+       time = clock_datetime;
+       GlobalInterruptEnable();
+
+       return time;
+}
+