Sample prog to test timer aspects

Dependencies:   TextLCD mbed-src

Testing mbed Timer

main.cpp

Committer:
eduardoG26
Date:
2015-03-30
Revision:
1:fa206fcadfad
Parent:
0:a55017238349
Child:
2:a8c19b073684

File content as of revision 1:fa206fcadfad:

/* Testing the overflow of Timer
LCD on I2C bus, PCF8574
 */
#include "mbed.h"
#include "TextLCD.h"

Timer t;

I2C i2c_lcd(I2C_SDA,I2C_SCL); // SDA, SCL

TextLCD_I2C lcd(&i2c_lcd, 0x40, TextLCD::LCD16x2); // I2C bus, PCF8574 Slaveaddress, LCD Type

int main()
{
    uint32_t    Millis, LastMillis;

    i2c_lcd.frequency(400000);  // 400KHz
    lcd.setCursor(lcd.CurOff_BlkOff); // Cursor off, Blink off
    lcd.cls();
    lcd.setBacklight(TextLCD::LightOn);
    lcd.locate(0,0);  // Goto beginning of line = second par.
    lcd.printf("Testing Timer...\n");
    lcd.locate(0,1);  // Goto beginning of line = second par.
    lcd.printf("...us overflow  \n");
    printf("Testing Timer us overflow\n");

    t.reset();
    t.start();
    Millis = t.read_ms() & 0x2000;
    lcd.locate(0,1);  // Goto beginning of line = second par.
    lcd.printf("Start M: %08d",Millis);

    do {
        LastMillis = Millis;
        Millis = t.read_ms() & 0x2000;
    } while(LastMillis <= Millis);

    lcd.locate(0,0);  // Goto beginning of line = second par.
    lcd.printf("Last M: %08d",LastMillis);
    lcd.locate(0,1);
    lcd.printf("Act. M: %08d",Millis);

    printf("Last Millis: %08d",LastMillis);
    printf("Act. Millis: %08d",Millis);
}