cgnuino
CgnDO.cpp
1 
9 #include "Arduino.h"
10 #include "cgnuino.h"
11 
17 CgnDO::CgnDO(byte p, byte s) {
18  first = p;
19  n = s;
20  for (int i = 0; i < N_CGNDO; i++) {
21  limit[i] = ULONG_MAX;
22  if (i < n) {
23  pinMode(first + i, OUTPUT);
24  digitalWrite(first + i, LOW);
25  }
26  }
27 }
28 
34 void CgnDO::update() {
35  uint32_t cur = millis();
36  for (int i = 0; i < n; i++) {
37  if(cur > limit[i]) {
38  digitalWrite(first + i, LOW);
39  limit[i] = ULONG_MAX;
40  }
41  }
42 }
43 
49 void CgnDO::out(byte i, uint32_t l) {
50  digitalWrite(first + i, HIGH);
51  limit[i] = millis() + l;
52 }
53 
CgnDO(byte, byte=1)
Consructor.
Definition: CgnDO.cpp:17
void out(byte, uint32_t)
Starts putting out from a pin for determined time length.
Definition: CgnDO.cpp:49
void update()
Lowers down the pins that finished determined time length of output.
Definition: CgnDO.cpp:34