Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 110:a930767c281c
- Parent:
- 109:b061f9830736
--- a/main.cpp Fri Oct 01 02:45:38 2021 +0000 +++ b/main.cpp Fri Oct 01 03:05:20 2021 +0000 @@ -1,29 +1,43 @@ /* -Project: 21_Button-v5 +Project: 21_TimerTest2_v5 File: main.cpp - -Toogles LED1 when USER_BUTTON is tapped. Note LED1 is also PA_5 which is -also D13. Based on built-in mbed example Nucleo_read_button. Holding the button -down will result in LED flashing. + +Tests timer peformance. Display new time difference with each button press +and release. Differences of 4 or 5 microseconds are typical. -Modified 12 Aug 2017 by Dr. Sheila Ross -Last revised 9/30/21 by Dr. C. S. Tritt +Last modified 9/30/21 by C. S. Tritt (v. 1.0) */ - #include "mbed.h" - -// Construct a digital input linked to the USER_BUTTON. -DigitalIn myButton(USER_BUTTON); // Built in blue button. - -// Construct a digital output linked to LED1. -DigitalOut myLed(LED1); // Built-in green LED. - + +// Construct a USER_BUTTON digital input. +DigitalIn myButton(USER_BUTTON); + +// Construct a timer object. +Timer myTimer; + +// Construct a transmit only serial connection over our USB. +Serial pc(USBTX, NC, 9600); + int main() { + myTimer.start(); // Start the timer. + while(true) { // Main loop. - if (myButton == 0) { // Button is active low. - myLed = !myLed; // Toggle LED on/off. - ThisThread::sleep_for(100); // Avoid double-tap, 0.1 seconds. + if (myButton == 0) { // Button is pressed (active low). + // Save the time on timer. + int firstTime = myTimer.read_us(); + int secondTime = myTimer.read_us(); + + // Send the time as text via the serial port. + pc.printf("Time difference %i microseconds.\n", secondTime - + firstTime ); + + // Reset the timer. + myTimer.reset(); + + // Wait for the user to release the button. + while(myButton == 0) { + } } } } \ No newline at end of file