New example. Initial version.

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?

UserRevisionLine numberNew 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 }