Arduino – millis() Multitasking
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
int led1=6; int led2=9; int led3=10; int led4=11; unsigned long times1=0; unsigned long times2=0; unsigned long times3=0; unsigned long times4=0; int states1=0; int states2=0; int states3=0; int states4=0; void setup() { Serial.begin(9600); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); } void loop() { if (millis() > times1+100) { times1=millis(); states1=!states1; } if (millis() > times2+300) { times2=millis(); states2=!states2; } if (millis() > times3+500) { times3=millis(); states3=!states3; } if (millis() > times4+1000) { times4=millis(); states4=!states4; } digitalWrite(led1, states1); digitalWrite(led2, states2); digitalWrite(led3, states3); digitalWrite(led4, states4); } |