Test mbed1.

Dependencies:   mbed-src

Committer:
mja054
Date:
Thu Mar 13 16:23:16 2014 +0000
Revision:
1:1019095e41c4
Parent:
0:7ac9830cbaa5
Child:
2:9f7506fa29d4
capability to add input.

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 1:1019095e41c4 5 #include "SLCD.h"
mja054 1:1019095e41c4 6 #define BAUD_RATE 9600
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 1:1019095e41c4 19 SLCD slcd;
mja054 0:7ac9830cbaa5 20
mja054 0:7ac9830cbaa5 21 unsigned int flag;
mja054 0:7ac9830cbaa5 22 unsigned int modulo_val = 48000;
mja054 0:7ac9830cbaa5 23 unsigned int prescale_val = 0;
mja054 1:1019095e41c4 24 volatile unsigned val = 10;
mja054 0:7ac9830cbaa5 25 void TPM0_handler_test();
mja054 0:7ac9830cbaa5 26
mja054 0:7ac9830cbaa5 27 void init_test()
mja054 0:7ac9830cbaa5 28 {
mja054 0:7ac9830cbaa5 29 NVIC_SetVector(TPM0_IRQn, (uint32_t) TPM0_handler_test);
mja054 0:7ac9830cbaa5 30 NVIC_SetPriority(TPM0_IRQn, 0);
mja054 0:7ac9830cbaa5 31
mja054 0:7ac9830cbaa5 32 TPM0_init(modulo_val, prescale_val);
mja054 0:7ac9830cbaa5 33
mja054 0:7ac9830cbaa5 34 NVIC_EnableIRQ(TPM0_IRQn);
mja054 0:7ac9830cbaa5 35
mja054 0:7ac9830cbaa5 36 wait(5);
mja054 0:7ac9830cbaa5 37 TPM0_start();
mja054 0:7ac9830cbaa5 38 }
mja054 0:7ac9830cbaa5 39
mja054 0:7ac9830cbaa5 40 void TPM0_handler_test() {
mja054 0:7ac9830cbaa5 41 unsigned int overflow = TPM0_SC_read() & 0x000000C0;
mja054 0:7ac9830cbaa5 42 if(overflow == 0xC0) {
mja054 0:7ac9830cbaa5 43 TPM0_clear_overflow();
mja054 0:7ac9830cbaa5 44 NVIC_ClearPendingIRQ(TPM0_IRQn);
mja054 0:7ac9830cbaa5 45 flag++;
mja054 1:1019095e41c4 46 if (flag == val) {
mja054 1:1019095e41c4 47 out = !out;
mja054 1:1019095e41c4 48 flag = 0;
mja054 1:1019095e41c4 49 }
mja054 0:7ac9830cbaa5 50 // green = !green;
mja054 0:7ac9830cbaa5 51 }
mja054 0:7ac9830cbaa5 52 }
mja054 0:7ac9830cbaa5 53
mja054 1:1019095e41c4 54 void read()
mja054 1:1019095e41c4 55 {
mja054 1:1019095e41c4 56 char c = (char) pc.getc();
mja054 1:1019095e41c4 57 green = !green;
mja054 1:1019095e41c4 58 if (c == '1') {
mja054 1:1019095e41c4 59 slcd.printf("%c",c);
mja054 1:1019095e41c4 60 val = 1;
mja054 1:1019095e41c4 61 } else if (c == '2') {
mja054 1:1019095e41c4 62 slcd.printf("%c", c);
mja054 1:1019095e41c4 63 val = 100;
mja054 1:1019095e41c4 64 } else if (c == '3') {
mja054 1:1019095e41c4 65 slcd.printf("%c",c);
mja054 1:1019095e41c4 66 val = 1000;
mja054 1:1019095e41c4 67 } else if (c == '4') {
mja054 1:1019095e41c4 68 slcd.printf("%c",c);
mja054 1:1019095e41c4 69 val = 10000;
mja054 1:1019095e41c4 70 } else if (c == '5') {
mja054 1:1019095e41c4 71 val = 100000;
mja054 1:1019095e41c4 72 } else {
mja054 1:1019095e41c4 73 slcd.printf("E");
mja054 1:1019095e41c4 74 return;
mja054 1:1019095e41c4 75 }
mja054 1:1019095e41c4 76 }
mja054 1:1019095e41c4 77
mja054 0:7ac9830cbaa5 78 int main() {
mja054 0:7ac9830cbaa5 79 flag = 0;
mja054 1:1019095e41c4 80 green = 0;
mja054 0:7ac9830cbaa5 81 pc.baud(BAUD_RATE);
mja054 1:1019095e41c4 82 pc.attach(read);
mja054 1:1019095e41c4 83 slcd.printf("nesl");
mja054 0:7ac9830cbaa5 84 init_test();
mja054 0:7ac9830cbaa5 85
mja054 0:7ac9830cbaa5 86 while(1) {
mja054 0:7ac9830cbaa5 87 if (flag == 1000) {
mja054 0:7ac9830cbaa5 88 green = !green;
mja054 0:7ac9830cbaa5 89 flag = 0;
mja054 0:7ac9830cbaa5 90 }
mja054 0:7ac9830cbaa5 91 }
mja054 0:7ac9830cbaa5 92 /*
mja054 0:7ac9830cbaa5 93 while(1) {
mja054 0:7ac9830cbaa5 94 green = !green;
mja054 0:7ac9830cbaa5 95 out = !out;
mja054 0:7ac9830cbaa5 96 wait(0.5);
mja054 0:7ac9830cbaa5 97 out = !out;
mja054 0:7ac9830cbaa5 98 wait(0.5);
mja054 0:7ac9830cbaa5 99 }
mja054 0:7ac9830cbaa5 100 */
mja054 0:7ac9830cbaa5 101 }