Charles Tritt
/
21_ConsoleIO_v5
Use this project as a starting point for simple IO testing in Mbed. This is the initial version.
main.cpp@113:cc5beacdad5a, 2021-10-11 (annotated)
- Committer:
- CSTritt
- Date:
- Mon Oct 11 12:45:46 2021 +0000
- Revision:
- 113:cc5beacdad5a
- Parent:
- 112:c7c727d92f2a
- Child:
- 114:1cfad1babb55
Initial Mbed v. 5 version.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CSTritt | 107:61b9c99a4e27 | 1 | /* |
CSTritt | 113:cc5beacdad5a | 2 | Project: 21_GlobalEx_v5 |
CSTritt | 109:b061f9830736 | 3 | File: main.cpp |
CSTritt | 111:956b1c606b66 | 4 | |
CSTritt | 111:956b1c606b66 | 5 | This simple program demonstrates that C passes arguments by value. |
CSTritt | 110:22b71c32c5e1 | 6 | |
CSTritt | 113:cc5beacdad5a | 7 | Uses VT-100 escape sequences to prevent scrolling. See |
CSTritt | 113:cc5beacdad5a | 8 | http://www.csie.ntu.edu.tw/~r92094/c++/VT100.html and/or |
CSTritt | 113:cc5beacdad5a | 9 | https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797. |
CSTritt | 110:22b71c32c5e1 | 10 | |
CSTritt | 113:cc5beacdad5a | 11 | Written by: Dr. C. S. Tritt; Last revised 10/11/21 (v. 1.1) |
CSTritt | 107:61b9c99a4e27 | 12 | */ |
Jonathan Austin |
0:2757d7abb7d9 | 13 | #include "mbed.h" |
CSTritt | 108:eee3167b25b4 | 14 | |
CSTritt | 111:956b1c606b66 | 15 | int myFunc(int x, int y); // Function declaration required. |
CSTritt | 111:956b1c606b66 | 16 | |
CSTritt | 113:cc5beacdad5a | 17 | // Arbitrary factor. Unitless. Move into main to break project. |
CSTritt | 113:cc5beacdad5a | 18 | const float myFactor = 3.3f; // Suffix f indicates float (default is double). |
CSTritt | 111:956b1c606b66 | 19 | |
CSTritt | 111:956b1c606b66 | 20 | int main() { |
CSTritt | 113:cc5beacdad5a | 21 | const int DELAY = 2000;; // mS wait time. |
CSTritt | 113:cc5beacdad5a | 22 | const char ESC=27; // Define escape character for escape sequence. |
CSTritt | 113:cc5beacdad5a | 23 | while(true) { // Main forever loop. |
CSTritt | 113:cc5beacdad5a | 24 | printf("%c[2J%c[H", ESC, ESC); // ANSI/VT100 clear screen/home. |
CSTritt | 113:cc5beacdad5a | 25 | printf("In function demo main...\n"); |
CSTritt | 111:956b1c606b66 | 26 | int a = 5; // Create and initialize a. |
CSTritt | 113:cc5beacdad5a | 27 | printf("a = %d\n", a); // Display a. |
CSTritt | 111:956b1c606b66 | 28 | int b = 6; // Create and initialize b. |
CSTritt | 113:cc5beacdad5a | 29 | printf("b = %d\n", b); // Display b. |
CSTritt | 113:cc5beacdad5a | 30 | printf("About to call my function.\n"); |
CSTritt | 111:956b1c606b66 | 31 | int c = myFunc(a, b); // Call my function. |
CSTritt | 113:cc5beacdad5a | 32 | printf("Function has returned.\n"); |
CSTritt | 113:cc5beacdad5a | 33 | printf("c = %d\n", c); // Display b. |
CSTritt | 113:cc5beacdad5a | 34 | ThisThread::sleep_for(DELAY); // Pause |
CSTritt | 108:eee3167b25b4 | 35 | } |
CSTritt | 111:956b1c606b66 | 36 | } |
CSTritt | 111:956b1c606b66 | 37 | |
CSTritt | 111:956b1c606b66 | 38 | int myFunc(int x, int y) { // Function definition. Often in separate files! |
CSTritt | 113:cc5beacdad5a | 39 | int z = (x + y)/myFactor; |
CSTritt | 111:956b1c606b66 | 40 | return z; // Explicit return is required in C/C++. |
CSTritt | 113:cc5beacdad5a | 41 | } |