Mohammad Mohammad
/
hw2
UCLA-EEM202A 2nd assignment. time synchronization
Diff: main.cpp
- 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; +}