This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:iot-open:programming_fundamentals_rtu:timing [2018/01/30 08:47] – Agrisnik | en:iot-open:programming_fundamentals_rtu:timing [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Timing ====== | ====== Timing ====== | ||
| - | There are two functions for the use of timing in the code of Arduino - Delay() and Millis(). | + | There are two functions for the use of timing in the code of Arduino - //delay()// and //millis()//. Although they might look similar, their functionality is different and should be used in different cases. |
| - | ===== Delay() ===== | + | ===== delay() ===== |
| - | The //Delay()// function | + | The //delay()// function |
| - | ===== Millis() ===== | + | The syntax of the function is the following: |
| + | <code c> | ||
| + | delay(ms) | ||
| + | </ | ||
| + | The parameter //ms// is the number of milliseconds to pause. The type should be //unsigned long//. | ||
| + | The function returns nothing. | ||
| + | |||
| + | The example code: | ||
| + | <code c> | ||
| + | int ledPin = 13; // LED connected to digital pin 13 | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | pinMode(ledPin, | ||
| + | } | ||
| + | |||
| + | void loop() | ||
| + | { | ||
| + | digitalWrite(ledPin, | ||
| + | delay(1000); | ||
| + | digitalWrite(ledPin, | ||
| + | delay(1000); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | The delay() function also has the version that is using microseconds instead of milliseconds and it is called - // | ||
| + | |||
| + | ===== millis() ===== | ||
| + | The // | ||
| + | |||
| + | The syntax of the function is following: | ||
| + | <code c> | ||
| + | time = millis() | ||
| + | </ | ||
| + | |||
| + | This function does not have the input parameters in brackets. | ||
| + | The return value of the function is the number of milliseconds that has passed since the program was started. The type is //unsigned long//. | ||
| + | |||
| + | The example of the function in the code: | ||
| + | <code c> | ||
| + | int period = 1000; //the interval | ||
| + | unsigned long time_now = 0; //variable that stores the last timing value | ||
| + | |||
| + | void setup() { | ||
| + | Serial.begin(9600); | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | if(millis() > time_now + period){ //testing, if the time that has passed exceeds 1000 milliseconds (1 second) | ||
| + | time_now = millis(); | ||
| + | Serial.println(" | ||
| + | } | ||
| + | |||
| + | //Some other code that executes each time the loop is run | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | This function also has the version of using microseconds instead of milliseconds - // | ||