Test mbed1.

Dependencies:   mbed-src

main.cpp

Committer:
mja054
Date:
2014-03-13
Revision:
2:9f7506fa29d4
Parent:
1:1019095e41c4

File content as of revision 2:9f7506fa29d4:

#include "mbed.h"
#include <math.h>
#include "InterruptManager.h"
#include "TPM_init.h"
#include "SLCD.h"
#define BAUD_RATE   9600

#define NVIC_ISER   0xE000E100
#define NVIC_ISPR   0xE000E200

#define SIM_SOPT2_ADDRESS 0x40048004
#define SIM_SCGC6_ADDRESS 0x4004803C


DigitalOut out(PTD3);
DigitalOut green(LED1);
DigitalOut red(LED2);
Serial pc(USBTX, USBRX);
Timer timer;
SLCD slcd;

unsigned int flag;
unsigned int modulo_val = 48000;
unsigned int prescale_val = 0;
volatile unsigned val = 10;
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++;
        if (flag == val) {
            out = !out;
            red = !red;
            flag = 0;
        }
//        green = !green;
    }
}

void read()
{
    char c = (char) pc.getc();
    green = !green;
    if (c == '1') {
        slcd.printf("%c",c);
        val = 1;
    } else if (c == '2') {
        slcd.printf("%c", c);
        val = 100;
    } else if (c == '3') {
        slcd.printf("%c",c);
        val = 1000;
    } else if (c == '4') {
        slcd.printf("%c",c);
        val = 10000;
    } else if (c == '5') {
        val = 100000;
    } else {
        slcd.printf("E");
        return;
    }
}

int main() {
    flag = 0;
    green = 0;
    red = 0;
    pc.baud(BAUD_RATE);
    pc.attach(read);
    slcd.printf("nesl");
    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);
    }
*/
}