UCLA-EEM202A 2nd assignment. time synchronization

Dependencies:   mbed

Revision:
0:4d75b473d9c9
Child:
1:3f76ed8cd999
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Mar 06 07:52:19 2014 +0000
@@ -0,0 +1,41 @@
+#include "mbed.h"
+
+// Declare output LEDs
+DigitalOut ledgreen(PTD5);
+DigitalOut ledred(PTE29);
+
+// Serial for debuggin purposes
+
+void initialize_ticker();
+
+int main() {
+    ledred = 1;
+    ledgreen = 0;
+    initialize_ticker();
+    while(1){
+        
+    }
+}
+
+void flip() {
+    //clear interrupt
+    PIT->CHANNEL[1].TFLG |= PIT_TFLG_TIF_MASK;
+    ledgreen = !ledgreen;
+    ledred = !ledred;
+}
+
+void initialize_ticker(){ 
+    //set to zero to enable PIT 
+    PIT->MCR = 0x00; 
+    //clear interrup before enabling it
+    PIT->CHANNEL[1].TFLG |= PIT_TFLG_TIF_MASK;
+    PIT->CHANNEL[1].LDVAL = 0x00BEBC1F; //1 second
+    //enable interrup
+    PIT->CHANNEL[1].TCTRL |= PIT_TCTRL_TIE_MASK;
+    //enable interrtup
+    __enable_irq();
+    NVIC_SetVector(PIT_IRQn, (uint32_t)flip);
+    NVIC_EnableIRQ(PIT_IRQn); 
+    //start timer 
+    PIT->CHANNEL[1].TCTRL |= PIT_TCTRL_TEN_MASK;
+}