[VicPiMakers Projects] Make class out of functions

Michelle Wiboltt michellewiboltt at outlook.com
Sun Nov 15 22:35:26 EST 2020


Question please,
If time travel, back / forth etc. Is truly ur goal how would
“I have two "identical" functions for time slicing the Arduino loop.
Slicing through/cutting the loop achieve ur desired results?
Moreover,
“unsigned long lastPostMillis=0; // the value of the modulus last time through the loop.
unsigned long lastBlinkMillis=0;”

unsigned = unattributable = just who is doing the time travel? Us, god, me, who?
Then the use of the word “last” in other words, meaning final? Has is that a loop when it has a determined “end” equaling “end”?

Just briefed over it so, didn’t look closely but these examples in and of themselves r the opposite of ur goal, see?

m

________________________________
From: Projects <projects-bounces at vicpimakers.ca> on behalf of Mark G. <vpm at palaceofretention.ca>
Sent: Sunday, November 15, 2020 7:13:46 PM
To: projects at vicpimakers.ca <projects at vicpimakers.ca>
Subject: Re: [VicPiMakers Projects] Make class out of functions

Hi George,

Here's a quick outline of an ActionTimer class.  What
do you make of it?

Mark


On 2020-11-15 6:07 p.m., George Bowden wrote:
> 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.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
> <mailto:gtbowdeng at gmail.com>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://vicpimakers.ca/pipermail/projects_vicpimakers.ca/attachments/20201116/12444ec3/attachment.htm>


More information about the Projects mailing list