Test mbed1.
Diff: main.cpp
- Revision:
- 0:7ac9830cbaa5
- Child:
- 1:1019095e41c4
diff -r 000000000000 -r 7ac9830cbaa5 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Mar 12 06:32:33 2014 +0000 @@ -0,0 +1,71 @@ +#include "mbed.h" +#include <math.h> +#include "InterruptManager.h" +#include "TPM_init.h" + +#define BAUD_RATE 921600 + +#define NVIC_ISER 0xE000E100 +#define NVIC_ISPR 0xE000E200 + +#define SIM_SOPT2_ADDRESS 0x40048004 +#define SIM_SCGC6_ADDRESS 0x4004803C + + +DigitalOut out(PTD3); +DigitalOut green(LED1); +Serial pc(USBTX, USBRX); +Timer timer; + +unsigned int flag; +unsigned int modulo_val = 48000; +unsigned int prescale_val = 0; + +void TPM0_handler_test(); + +void init_test() +{ + NVIC_SetVector(TPM0_IRQn, (uint32_t) TPM0_handler_test); + NVIC_SetPriority(TPM0_IRQn, 0); + + TPM0_init(modulo_val, prescale_val); + + NVIC_EnableIRQ(TPM0_IRQn); + + wait(5); + TPM0_start(); +} + +void TPM0_handler_test() { + unsigned int overflow = TPM0_SC_read() & 0x000000C0; + if(overflow == 0xC0) { + TPM0_clear_overflow(); + NVIC_ClearPendingIRQ(TPM0_IRQn); + flag++; + out = !out; +// green = !green; + } +} + +int main() { + flag = 0; + pc.baud(BAUD_RATE); + + init_test(); + + while(1) { + if (flag == 1000) { + green = !green; + flag = 0; + } + } +/* + while(1) { + green = !green; + out = !out; + wait(0.5); + out = !out; + wait(0.5); + } +*/ +}