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:
- 113:cc5beacdad5a
- Parent:
- 112:c7c727d92f2a
- Child:
- 114:1cfad1babb55
--- a/main.cpp Mon Oct 11 12:24:03 2021 +0000
+++ b/main.cpp Mon Oct 11 12:45:46 2021 +0000
@@ -1,52 +1,41 @@
/*
-Project: 21_FuncEx_v5
+Project: 21_GlobalEx_v5
File: main.cpp
This simple program demonstrates that C passes arguments by value.
- See http://www.csie.ntu.edu.tw/~r92094/c++/VT100.html and/or
- https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 for escape
- sequences.
+ Uses VT-100 escape sequences to prevent scrolling. See
+ http://www.csie.ntu.edu.tw/~r92094/c++/VT100.html and/or
+ https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797.
- Written by: Dr. C. S. Tritt; Last revised 10/11/21 (v. 1.2)
+ Written by: Dr. C. S. Tritt; Last revised 10/11/21 (v. 1.1)
*/
#include "mbed.h"
-// Function definitions are typically in .h files are more commonly that are
-// included here.
int myFunc(int x, int y); // Function declaration required.
-Serial pc(USBTX, USBRX, 9600); // Create Serial object.
-
-const char ESC = 27; // ESC character for ANSI escape sequences.
-const int DELAY = 2000; // Loop delay in mS.
+// Arbitrary factor. Unitless. Move into main to break project.
+const float myFactor = 3.3f; // Suffix f indicates float (default is double).
int main() {
- while(true) {
- // Clear screen & move cursor to upper left ANSI/VT100 sequence.
- pc.printf("%c[2J", ESC); pc.printf("%c[H", ESC);
- // Start of display code.
- pc.printf("In function demo main...\n");
+ const int DELAY = 2000;; // mS wait time.
+ const char ESC=27; // Define escape character for escape sequence.
+ while(true) { // Main forever loop.
+ printf("%c[2J%c[H", ESC, ESC); // ANSI/VT100 clear screen/home.
+ printf("In function demo main...\n");
int a = 5; // Create and initialize a.
- pc.printf("a = %d\n", a); // Display a.
+ printf("a = %d\n", a); // Display a.
int b = 6; // Create and initialize b.
- pc.printf("b = %d\n", b); // Display b.
- pc.printf("About to call my function.\n");
+ printf("b = %d\n", b); // Display b.
+ printf("About to call my function.\n");
int c = myFunc(a, b); // Call my function.
- pc.printf("Function has returned.\n");
- pc.printf("a = %d\n", a); // Redisplay a.
- pc.printf("b = %d\n", b); // Redisplay b.
- pc.printf("c = %d\n", c); // Display b.
- ThisThread::sleep_for(DELAY); // Pause for DELAY mS.
+ printf("Function has returned.\n");
+ printf("c = %d\n", c); // Display b.
+ ThisThread::sleep_for(DELAY); // Pause
}
}
int myFunc(int x, int y) { // Function definition. Often in separate files!
- int z = x + y;
- // Changing parameter values here won't change argument values in main!
- x = 50;
- pc.printf("x = %d\n", x); // Generally don't put I/O in regular functions.
- y = 100;
- pc.printf("y = %d\n", y); // Generally don't put I/O in regular functions.
+ int z = (x + y)/myFactor;
return z; // Explicit return is required in C/C++.
-}
\ No newline at end of file
+}
\ No newline at end of file