UCLA-EEM202A 2nd assignment. time synchronization

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 // Declare output LEDs
00004 DigitalOut ledgreen(PTD5);
00005 DigitalOut ledred(PTE29);
00006 
00007 // Serial for debuggin purposes
00008 
00009 void initialize_ticker();
00010 
00011 int main() {
00012     ledred = 1;
00013     ledgreen = 0;
00014     initialize_ticker();
00015     while(1){
00016         
00017     }
00018 }
00019 
00020 void flip() {
00021     //clear interrupt
00022     PIT->CHANNEL[1].TFLG |= PIT_TFLG_TIF_MASK;
00023     ledgreen = !ledgreen;
00024     ledred = !ledred;
00025 }
00026 
00027 void initialize_ticker(){ 
00028     //enable clock 
00029     SIM->SCGC6 |= SIM_SCGC6_PIT_MASK;
00030     //set to zero to enable PIT 
00031     PIT->MCR = 0x00; 
00032     //clear interrup before enabling it
00033     PIT->CHANNEL[1].TFLG |= PIT_TFLG_TIF_MASK;
00034     PIT->CHANNEL[1].LDVAL = 0x00; //.04us 
00035     //enable interrup
00036     PIT->CHANNEL[1].TCTRL |= PIT_TCTRL_TIE_MASK;
00037     //enable interrtup
00038     __enable_irq();
00039     NVIC_SetVector(PIT_IRQn, (uint32_t)flip);
00040     NVIC_EnableIRQ(PIT_IRQn); 
00041     //start timer 
00042     PIT->CHANNEL[1].TCTRL |= PIT_TCTRL_TEN_MASK;
00043 }