Teensy 4.1 Problems #89

Open
opened 2022-07-29 06:45:25 +03:00 by jimmie11 · 0 comments
jimmie11 commented 2022-07-29 06:45:25 +03:00 (Migrated from github.com)

I have a relatively large program running on a Teensy 4.1. The program has a web server, a TCP server and interfaces to two sensors.

The system is connected to a traffic loop. When a car comes, the loop is triggered and the teensy senses a "dry contact". I then start reading from the connected sensors. I am not using a pull-up resistor with the loop as I am relying on the internal one as shown in the attached code.

After about 800 loop activations, my code stops sensing the loop. I am sure that my code did not crash because I can still connect to the TCP server and can display data from the Teensy on a web browser. So the program is still running but is not sensing any loop closures. When I restart the program by connecting to its web server, everything starts working again.

I would appreciate any help regarding what may be causing this problem.

The code is below:

#include <Bounce2.h>
        Bounce myLoop1 = Bounce();
        Bounce myLoop2 = Bounce();
        int debounce_interval_time = 7;

        #define loop1 32    
        #define loop2 33

        volatile unsigned long   lastLoopTime;
        volatile bool leddarCapturing = false;

        bool loopInterrupt = false;
        long loopInterruptTime;
        long numLoopInterrupt = 0;

        void setup(void)
        {
          setUpPins();
          BounceInterrupt();

        }


        void loop()
        {
          //---------------------------------------------------------------------------------
            myLoop1.update();
            myLoop2.update();

            if (myLoop1.read() == 0) activateLoop1New();
          //---------------------------------------------------------------------------------
        }

        void setUpPins()
        {
          //------------------------------------------------------------------------------
          pinMode(loop1, INPUT_PULLUP);
          pinMode(loop2, INPUT_PULLUP);
          //------------------------------------------------------------------------------
          delay(500);
        }

        void BounceInterrupt()
        {
          //------------------------------------------------------------------------------
            myLoop1.attach(loop1);
            myLoop1.interval(debounce_interval_time);

            myLoop2.attach(loop2);
            myLoop2.interval(debounce_interval_time);
          //------------------------------------------------------------------------------
        }

        void activateLoop1New()
        {
          if ((millis() - lastLoopTime) > 120)  //Guard against multiple loop triggers within a short time
          {
            //----------------------------------------
            lastLoopTime = millis();
            if (! Capturing) 
            {
              digitalWrite(yellowPin, HIGH);
            }
            if (Capturing)
            {
              loopInterrupt = true;    
              loopInterruptTime = millis();
              numLoopInterrupt = numLoopInterrupt + 1;
              digitalWrite(yellowPin, LOW);
            }
            //----------------------------------------
          }
        }

Quick reply to this message[ Reply](https://forum.pjrc.com/newreply.php?do=newreply&p=310060&noquote=1)  [ Reply With Quote](https://forum.pjrc.com/newreply.php?do=newreply&p=310060) Reply With Quote   Multi-Quote This Message
I have a relatively large program running on a Teensy 4.1. The program has a web server, a TCP server and interfaces to two sensors. The system is connected to a traffic loop. When a car comes, the loop is triggered and the teensy senses a "dry contact". I then start reading from the connected sensors. I am not using a pull-up resistor with the loop as I am relying on the internal one as shown in the attached code. After about 800 loop activations, my code stops sensing the loop. I am sure that my code did not crash because I can still connect to the TCP server and can display data from the Teensy on a web browser. So the program is still running but is not sensing any loop closures. When I restart the program by connecting to its web server, everything starts working again. I would appreciate any help regarding what may be causing this problem. The code is below: ``` #include <Bounce2.h> Bounce myLoop1 = Bounce(); Bounce myLoop2 = Bounce(); int debounce_interval_time = 7; #define loop1 32 #define loop2 33 volatile unsigned long lastLoopTime; volatile bool leddarCapturing = false; bool loopInterrupt = false; long loopInterruptTime; long numLoopInterrupt = 0; void setup(void) { setUpPins(); BounceInterrupt(); } void loop() { //--------------------------------------------------------------------------------- myLoop1.update(); myLoop2.update(); if (myLoop1.read() == 0) activateLoop1New(); //--------------------------------------------------------------------------------- } void setUpPins() { //------------------------------------------------------------------------------ pinMode(loop1, INPUT_PULLUP); pinMode(loop2, INPUT_PULLUP); //------------------------------------------------------------------------------ delay(500); } void BounceInterrupt() { //------------------------------------------------------------------------------ myLoop1.attach(loop1); myLoop1.interval(debounce_interval_time); myLoop2.attach(loop2); myLoop2.interval(debounce_interval_time); //------------------------------------------------------------------------------ } void activateLoop1New() { if ((millis() - lastLoopTime) > 120) //Guard against multiple loop triggers within a short time { //---------------------------------------- lastLoopTime = millis(); if (! Capturing) { digitalWrite(yellowPin, HIGH); } if (Capturing) { loopInterrupt = true; loopInterruptTime = millis(); numLoopInterrupt = numLoopInterrupt + 1; digitalWrite(yellowPin, LOW); } //---------------------------------------- } } ``` Quick reply to this message[ Reply](https://forum.pjrc.com/newreply.php?do=newreply&p=310060&noquote=1) [ Reply With Quote](https://forum.pjrc.com/newreply.php?do=newreply&p=310060) Reply With Quote Multi-Quote This Message
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Max/thomasfredericks_Bounce2#89