APP Team
/
app3
led example with 2 timers
receiver.cpp
- Committer:
- passelin
- Date:
- 2014-02-11
- Revision:
- 2:124a066878cc
- Parent:
- 1:6e31c704f4d6
- Child:
- 4:af325c921e79
File content as of revision 2:124a066878cc:
#include "main.h" extern Serial pc; DigitalOut myled2(LED2); volatile unsigned short timer1_count; void Receiver_init(void) { myled2 = 0; LPC_SC->PCONP |=1<<2; //timer1 power on LPC_TIM1->MR0 = 2398000; //100 msec LPC_TIM1->MCR = 3; //interrupt and reset control //3 = Interrupt & reset timer1 on match //1 = Interrupt only, no reset of timer0 NVIC_EnableIRQ(TIMER1_IRQn); //enable timer1 interrupt LPC_TIM1->TCR = 1; //enable Timer1 //pc.printf("Done timer1_init\n\r"); } extern "C" void TIMER1_IRQHandler (void) { if((LPC_TIM1->IR & 0x01) == 0x01) // if MR0 interrupt, proceed { LPC_TIM1->IR |= 1 << 0; // Clear MR0 interrupt flag timer1_count++; //increment timer_count // pc.printf("timer1_count %d \n\r", timer1_count); if (timer1_count >= 20) //Set timer_count for about 8 seconds { if (myled2 == 1) //If LED off, turn it on & { myled2 = 0; timer1_count = 0; //reset count } else { myled2 = 1; //If LED on, turn it off & timer1_count = 0; //reset count } } } } void Receiver_thread(void const *args) { Receiver_init(); while(1) { // wait forever... } }