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/31 11:52] – 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 // | + | There are two functions for the use of timing in the code of Arduino - //delay()// and // |
| ===== delay() ===== | ===== delay() ===== | ||
| Line 10: | Line 10: | ||
| </ | </ | ||
| - | The parameter //ms// is the number of milliseconds to pause. | + | The parameter //ms// is the number of milliseconds to pause. The type should be //unsigned long//. |
| + | The function returns nothing. | ||
| The example code: | The example code: | ||
| <code c> | <code c> | ||
| - | int ledPin = 13; | + | int ledPin = 13; // LED connected to digital pin 13 |
| void setup() | void setup() | ||
| Line 23: | Line 24: | ||
| void loop() | void loop() | ||
| { | { | ||
| - | digitalWrite(ledPin, | + | digitalWrite(ledPin, |
| - | delay(1000); | + | delay(1000); |
| - | digitalWrite(ledPin, | + | digitalWrite(ledPin, |
| - | delay(1000); | + | delay(1000); |
| } | } | ||
| </ | </ | ||
| Line 33: | Line 34: | ||
| ===== millis() ===== | ===== millis() ===== | ||
| - | The // | + | The // |
| - | This function also has the version of using microseconds instead of milliseconds - // | + | 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 - // | ||