APP 4
Dependencies: mbed CRC16 mbed-rtos
APP.cpp
- Committer:
- vinbel93
- Date:
- 2016-02-20
- Revision:
- 3:3ffa14e75b8a
- Parent:
- 2:1250280a511b
- Child:
- 6:3181f546e812
- Child:
- 7:733d500dbe5c
File content as of revision 3:3ffa14e75b8a:
#include "APP.h" #include "Manchester.h" Serial pc(USBTX, USBRX); bool messageReady = false; bitset<2 * FRAMESIZE> message; int counter = 0; int benchmark(void (*function) (void)) { int count = LPC_TIM2->TC; function(); return LPC_TIM2->TC - count; } extern "C" void TIMER2_IRQHandler() { if ((LPC_TIM2->IR & 0x01) == 0x01) // if MR0 interrupt, proceed { LPC_TIM2->IR |= 1 << 0; // Clear MR0 interrupt flag if (messageReady) { LPC_TIM2->EMR = ((message[counter++] + 1) << 4); } else { LPC_TIM2->EMR = (1 << 4); // output 0 } } } void initTimer() { LPC_SC->PCLKSEL1 |= (1 << 12); // pclk = cclk timer2 LPC_SC->PCONP |= (1 << 22); // timer2 power on LPC_TIM2->MR0 = 9600000; // 100 ms LPC_TIM2->MCR = 3; // interrupt and reset control // Interrupt & reset timer2 on match NVIC_EnableIRQ(TIMER2_IRQn); // enable timer2 interrupt LPC_TIM2->TCR = 1; // enable Timer2 } int main() { LPC_PINCON->PINSEL0 |= (3 << 12); // P0.6 = MAT2.0 initTimer(); while (true) { wait(1.0); } }