Test mbed1.

Dependencies:   mbed-src

main.cpp

Committer:
mja054
Date:
2014-03-12
Revision:
0:7ac9830cbaa5
Child:
1:1019095e41c4

File content as of revision 0:7ac9830cbaa5:

#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);
    }
*/
}