[VicPiMakers Projects] Make class out of functions

George Bowden gtbowdeng at gmail.com
Sun Nov 15 21:07:52 EST 2020


I have two "identical" functions for time slicing the Arduino loop.  One
function is called to see if it is time to toggle the LED every second, and
the other "identical" function is called to see if it is time to send a
post to the website every few minutes.  These functions seem good
candidates for a single C++ class, and I'm looking for some advice, never
having coded a class before.  Maybe it's a coding challenge? I'm using
Arduinos millis() which increments continuously and the modulus of that,
with a different period value passed to the functions, to determine when to
act.  When the modulus remainder is smaller than the last time through the
loop, it is time to take action. (the vertical line in the stairs)

[image: image.png]



Each instance of the class needs its own static variable for the value of
mod'ed millis() last time through the loop.   I would like to write a class
which I instantiate with NEW for each different period, ....  I would like
to put these in a library that I could include in any of my projects that
need time sliced

 Here is how I have coded it as functions:

unsigned long lastPostMillis=0;  // the value of the modulus last time
through the loop.
unsigned long lastBlinkMillis=0;

bool isPostTime(unsigned long int period){
  if(millis() % period > lastPostMillis) {
    lastPostMillis = millis()% period;
    return true;
  }
  else {
    lastPostMillis = millis() % period;
    return false;
  }
}
bool isBlinkTime(unsigned long int period){
  int blinkPeriod = 500;
  if(millis() % blinkPeriod > lastBlinkMillis) {
    lastBlinkMillis = millis()% period;
    return true;
  }
  else {
    lastBlinkMillis = millis()% period;
    return false;
  }
}
void setup() {...
}
void loop() {
  if (isPostTime(minutesBetweenPosts*60000)) { //time to send a Post to the
website
  ...
  if(isBlinkTime(500)){
    toggle builtin led}
} // end loop
-- 
George Bowden, 250-893-7423
gtbowdeng at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://vicpimakers.ca/pipermail/projects_vicpimakers.ca/attachments/20201115/ad46373a/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 32805 bytes
Desc: not available
URL: <http://vicpimakers.ca/pipermail/projects_vicpimakers.ca/attachments/20201115/ad46373a/attachment.png>


More information about the Projects mailing list