My attempt at using the mbed without the mbed libraries.

Dependencies:   ARM registers

Here is a main.cpp, that uses the registers library.

main.cpp

Committer:
elevatorguy
Date:
2013-01-03
Revision:
3:88da6c0412b0
Parent:
2:e26c096f1946
Child:
4:6ed8900881e8

File content as of revision 3:88da6c0412b0:

#include "registers.h"
DigitalOut led1(p20);
DigitalOut led2(p19);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
DigitalIn switch1(p21);

Serial pc(115200);
Timer t(1000); //ms resolution for a serial stopwatch demo

Ticker tock;
Ticker tock2;

extern "C" void isr(void) {
    led1 = !led1;
}

extern "C" void isr2(void) {
    led2 = !led2;
}

int main() {  //Timer and Ticker demonstration
    switch1.mode(PULLDOWN);
    t.start();
    
    tock.attach(&isr, 0.50);
    tock2.attach(&isr2, 0.25);
    while(1)
    {
        double time = t;
        int h = 0;
        int m = 0;
        while(time > 3600)
        {
            time = time - 3600;
            h = h + 1;
        }
        while(time > 60)
        {
            time = time - 60;
            m = m + 1;
        }
        if(h < 10.0)
        {
            pc.putc('0');
        }
        if(h != 0)
        {
            pc.printf(h);
        }
        else
        {
            pc.putc('0');
        }
        pc.putc(':');
        if(m < 10.0)
        {
            pc.putc('0');
        }
        if(m != 0)
        {
            pc.printf(m);
        }
        else
        {
            pc.putc('0');
        }
        pc.putc(':');
        if(time < 10.0)
        {
            pc.putc('0');
        }
        if(time < 1.0)
        {
            pc.putc('0');
        }
        pc.printf(time, 100);
        int timeAsInt = time;
        if((time-timeAsInt)*100 < 10.0)
        {
            pc.putc('0');
        }
        if((time-timeAsInt)*100 < 1.0)
        {
            pc.putc('0');
        }
        pc.printf("\r\n");
    }
}