Go Down

Topic: Question about millis() (Read 531 times) previous topic - next topic

DrLabel

i'm using a code for right to my led display using millis.
my question is what happen after approximately 50 days.

the code is :

/*

*/
#include <LedDisplay.h>

// Define pins for the LED display.
// You can change these, just re-wire your board:
#define dataPin 6              // connects to the display's data in
#define registerSelect 7       // the display's register select pin
#define clockPin 8             // the display's clock pin
#define enable 9               // the display's chip enable pin
#define reset 10               // the display's reset pin
#define displayLength 8        // number of bytes needed to pad the string
// create am instance of the LED display:
LedDisplay myDisplay = LedDisplay(dataPin, registerSelect, clockPin,
enable, reset, displayLength);

int lcdstate = 0; //estado do LCD
long previousMillis = 0;
long interval = 1000;
int brightness = 15;        // screen brightness
char open[] = {' ','O','p','e','n',' ',' ',' '};
char door[] = {' ','D','o','o','r',' ',' ',' ',};
//char del[]={' ',' ',' ',' ',' ',' ',' ',' ',};
void setup() {
 Serial.begin(9600);

 // initialize the display library:
 myDisplay.begin();
 myDisplay.setString("Open");
 myDisplay.home();
 myDisplay.setBrightness(brightness);
}

void loop() {
     if (millis()- previousMillis > interval) {
       previousMillis = millis();
       if (lcdstate == 0){
           myDisplay.home();
           for (int thisPosition = 0; thisPosition < 8; thisPosition++)
             {
              myDisplay.write(open[thisPosition]);
             }
           lcdstate = 1;
       }
       else {    
           myDisplay.home();
           for (int thisPosition = 0; thisPosition < 8; thisPosition++)
            {
             myDisplay.write(door[thisPosition]);
            }
           lcdstate = 0;
       }
       
}
}

Coding Badly

Change this...

Code: [Select]
long previousMillis = 0;
long interval = 1000;


...to this...

Code: [Select]
unsigned long previousMillis = 0;
unsigned long interval = 1000;


...and you should be good to go.  I believe you can test by using "unsigned short" instead of "unsigned long".  The roll-over should occur in just over one minute.

DrLabel


Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy