Difference between revisions of "Arduino Programming Fundamentals"
Line 51: | Line 51: | ||
void loop() { | void loop() { | ||
} | } | ||
+ | //a function needs to be able to accept an integer value that is passed to it, | ||
+ | //the variable type and the name of the variable | ||
+ | //are inserted between the opening an closing parentheses after the function name | ||
− | void DashedLine(int len) | + | void DashedLine(int len) |
{ | { | ||
int i; | int i; | ||
// draw the line | // draw the line | ||
+ | //The body of the sketch uses the len variable in a for loop | ||
+ | //to print out the correct number of dashes that make up the dashed line of the menu box | ||
for (i = 0; i < len; i++) { | for (i = 0; i < len; i++) { | ||
Serial.print("-"); | Serial.print("-"); |
Revision as of 03:09, 3 December 2018
Functions
In computer science, a subroutine or subprogram (also called procedure, method, function, or routine) is a portion of code within a larger program, which performs a specific task and is relatively independent of the remaining code.
A function is a way for programmers to reuse code without having to rewrite it, this is time saving, and often makes code more readable.
what we need to have a function:
1) each function must have a unique name
2) the function name is followed by parentheses()
3) functions have a return type, e.g. void
4) the body of a function is enclosed in opening and closing braces {}
Lets do a very simple example to see how it works
void setup() {
Serial.begin(9600);
DashedLine(); //here we are calling the function
Serial.println("| BONJOUR |");
DashedLine(); //here we call it again
}
void loop() {
}
void DashedLine() //here is where we create the function
{
Serial.println("----------------");
}
Passing a value to a function
and a bit of for loop
void setup() {
Serial.begin(9600);
// draw the menu box
DashedLine(24);
Serial.println("| Program Options Menu |");
DashedLine(24);
}
void loop() {
}
//a function needs to be able to accept an integer value that is passed to it,
//the variable type and the name of the variable
//are inserted between the opening an closing parentheses after the function name
void DashedLine(int len)
{
int i;
// draw the line
//The body of the sketch uses the len variable in a for loop
//to print out the correct number of dashes that make up the dashed line of the menu box
for (i = 0; i < len; i++) {
Serial.print("-");
}
// move the cursor to the next line
Serial.println("");
}
Arrays and the for loop
Beyond the delay()
A Scheduler
A scheduler is like writing down a list of when you are going to do something and a state machine is like keeping a record of how far through a task you have got.
If you use the function delay(1000) then the processor goes away and does nothing for one second. We say this delay() is a blocking function, that is it blocks further activity in the program. So in order for our code to do something whilst waiting for the delay time to expire, what we need is a scheduler, something that will call a specific task at a specific time. There are several ways to do this but this is perhaps the simplest.
A State Machine
A ‘state’ is the condition of a thing at a specific time. Something that can accomplish tasks and that utilizes states at its core is a state machine. They are also known as Finite State Machines (FSM), meaning that we know all possible states of the thing. The key to the state machine is the concept of time and history. The state of the machine is evaluated periodically. Each time it is evaluated, a new state is chosen (which could be the same state again), and the output is presented.