Test mbed1.

Dependencies:   mbed-src

Committer:
mja054
Date:
Wed Mar 12 06:32:33 2014 +0000
Revision:
0:7ac9830cbaa5
Child:
1:1019095e41c4
Test mbed1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mja054 0:7ac9830cbaa5 1 #include "mbed.h"
mja054 0:7ac9830cbaa5 2 #include <math.h>
mja054 0:7ac9830cbaa5 3 #include "InterruptManager.h"
mja054 0:7ac9830cbaa5 4 #include "TPM_init.h"
mja054 0:7ac9830cbaa5 5
mja054 0:7ac9830cbaa5 6 #define BAUD_RATE 921600
mja054 0:7ac9830cbaa5 7
mja054 0:7ac9830cbaa5 8 #define NVIC_ISER 0xE000E100
mja054 0:7ac9830cbaa5 9 #define NVIC_ISPR 0xE000E200
mja054 0:7ac9830cbaa5 10
mja054 0:7ac9830cbaa5 11 #define SIM_SOPT2_ADDRESS 0x40048004
mja054 0:7ac9830cbaa5 12 #define SIM_SCGC6_ADDRESS 0x4004803C
mja054 0:7ac9830cbaa5 13
mja054 0:7ac9830cbaa5 14
mja054 0:7ac9830cbaa5 15 DigitalOut out(PTD3);
mja054 0:7ac9830cbaa5 16 DigitalOut green(LED1);
mja054 0:7ac9830cbaa5 17 Serial pc(USBTX, USBRX);
mja054 0:7ac9830cbaa5 18 Timer timer;
mja054 0:7ac9830cbaa5 19
mja054 0:7ac9830cbaa5 20 unsigned int flag;
mja054 0:7ac9830cbaa5 21 unsigned int modulo_val = 48000;
mja054 0:7ac9830cbaa5 22 unsigned int prescale_val = 0;
mja054 0:7ac9830cbaa5 23
mja054 0:7ac9830cbaa5 24 void TPM0_handler_test();
mja054 0:7ac9830cbaa5 25
mja054 0:7ac9830cbaa5 26 void init_test()
mja054 0:7ac9830cbaa5 27 {
mja054 0:7ac9830cbaa5 28 NVIC_SetVector(TPM0_IRQn, (uint32_t) TPM0_handler_test);
mja054 0:7ac9830cbaa5 29 NVIC_SetPriority(TPM0_IRQn, 0);
mja054 0:7ac9830cbaa5 30
mja054 0:7ac9830cbaa5 31 TPM0_init(modulo_val, prescale_val);
mja054 0:7ac9830cbaa5 32
mja054 0:7ac9830cbaa5 33 NVIC_EnableIRQ(TPM0_IRQn);
mja054 0:7ac9830cbaa5 34
mja054 0:7ac9830cbaa5 35 wait(5);
mja054 0:7ac9830cbaa5 36 TPM0_start();
mja054 0:7ac9830cbaa5 37 }
mja054 0:7ac9830cbaa5 38
mja054 0:7ac9830cbaa5 39 void TPM0_handler_test() {
mja054 0:7ac9830cbaa5 40 unsigned int overflow = TPM0_SC_read() & 0x000000C0;
mja054 0:7ac9830cbaa5 41 if(overflow == 0xC0) {
mja054 0:7ac9830cbaa5 42 TPM0_clear_overflow();
mja054 0:7ac9830cbaa5 43 NVIC_ClearPendingIRQ(TPM0_IRQn);
mja054 0:7ac9830cbaa5 44 flag++;
mja054 0:7ac9830cbaa5 45 out = !out;
mja054 0:7ac9830cbaa5 46 // green = !green;
mja054 0:7ac9830cbaa5 47 }
mja054 0:7ac9830cbaa5 48 }
mja054 0:7ac9830cbaa5 49
mja054 0:7ac9830cbaa5 50 int main() {
mja054 0:7ac9830cbaa5 51 flag = 0;
mja054 0:7ac9830cbaa5 52 pc.baud(BAUD_RATE);
mja054 0:7ac9830cbaa5 53
mja054 0:7ac9830cbaa5 54 init_test();
mja054 0:7ac9830cbaa5 55
mja054 0:7ac9830cbaa5 56 while(1) {
mja054 0:7ac9830cbaa5 57 if (flag == 1000) {
mja054 0:7ac9830cbaa5 58 green = !green;
mja054 0:7ac9830cbaa5 59 flag = 0;
mja054 0:7ac9830cbaa5 60 }
mja054 0:7ac9830cbaa5 61 }
mja054 0:7ac9830cbaa5 62 /*
mja054 0:7ac9830cbaa5 63 while(1) {
mja054 0:7ac9830cbaa5 64 green = !green;
mja054 0:7ac9830cbaa5 65 out = !out;
mja054 0:7ac9830cbaa5 66 wait(0.5);
mja054 0:7ac9830cbaa5 67 out = !out;
mja054 0:7ac9830cbaa5 68 wait(0.5);
mja054 0:7ac9830cbaa5 69 }
mja054 0:7ac9830cbaa5 70 */
mja054 0:7ac9830cbaa5 71 }