Sample prog to test timer aspects
Dependencies: TextLCD mbed-src
Testing mbed Timer
main.cpp
- Committer:
- eduardoG26
- Date:
- 2015-03-30
- Revision:
- 2:a8c19b073684
- Parent:
- 1:fa206fcadfad
File content as of revision 2:a8c19b073684:
/* 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 // Trick to change baudrate of stdout, SFord void baud(int baudrate) { Serial s(USBTX, USBRX); s.baud(baudrate); } int main() { uint32_t Millis, LastMillis; baud(921600); // see function above 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("\nTesting Timer us overflow..\n"); t.reset(); t.start(); #define TIMER_MASK (0x1000uL - 1) Millis = t.read_ms() & TIMER_MASK; lcd.locate(0,1); // Goto beginning of line = second par. lcd.printf("Start M: %08d",Millis); do { LastMillis = Millis; Millis = t.read_ms() & TIMER_MASK; } 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\n",LastMillis); printf("Act. Millis: %08d\n",Millis); }