[VicPiMakers Projects] Make class out of functions
Michelle Wiboltt
michellewiboltt at outlook.com
Sun Nov 15 19:35:26 PST 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