ethernet and timer library samen
15 berichten
• Pagina 2 van 2 • 1, 2
- sebastiaan_maes
- Berichten: 13
- Geregistreerd: 08 Apr 2017, 18:49
Re: ethernet and timer library samen
Het ledje gaat nog steeds niet, of en toe zie ik heel lichtjes iets oplichten. Maar volledig branden of zien wanneer de 3 seconden om zijn adhv het ledje kan ik niet
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: ethernet and timer library samen
Die timer wordt toch elke keer opniuw gezet in de loop? Die verloopt nooit
- sebastiaan_maes
- Berichten: 13
- Geregistreerd: 08 Apr 2017, 18:49
Re: ethernet and timer library samen
het rare is dan dat wanneer ik de code zonder de ethernet library upload de code perfect werkt, hier staat de timer ook in de loop
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: ethernet and timer library samen
Gewoon millis gebruiken.... weet je tenminste wat er gebeurt
Re: ethernet and timer library samen
Nico heeft gelijk. Ik heb eens naar RBD_Timer.cpp gekeken: https://github.com/alextaujenis/RBD_Timer
Het is me niet helemaal duidelijk, maar ik zie er geen fouten in. Dus de library lijkt me okay.
Je gebruikt het echter op een merkwaardige manier.
De setTimeout is bedoelt om één keer in te stellen.
Wanneer je een knop hebt ingedrukt, dan wordt een stop of restart steeds maar weer opnieuw aangeroepen. Waarschijnlijk geeft het niet, maar eigenlijk is die library daar niet voor geschreven.
Waarschijnlijk heb je een State-Change-Detection op beide knoppen nodig.
https://www.arduino.cc/en/Tutorial/StateChangeDetection
Om de Ethernet te laten werken, mag je niet de seriele poort overspoelen. Wanneer de TX buffer vol zit door heel veel Serial.println() te gebruiken, dan wordt de sketch opeens 100 of 1000 keer langzamer.
Als de timer aktief is, dan overspoel je de seriele poort met : Serial.println(verstrekenTijd);
Je doet een client.connect() iedere keer als de loop() draait. Wil dat echt tientallen keren per seconde of vaker doen ? Je kunt beter zelf bepalen hoe vaak je dat wilt doen. Dat kan met een software timer met millis().
Sorry dat ik er nu pas goed naar hebt gekeken. De ethernet sketch had een delay, en zonder die delay gaat er van alles mis. De timer sketch overspoelde de seriële poort. En die twee bij elkaar gaat dus helemaal niet goed.
De RBD_Timer library is bedoeld om het gebruik van millis() eenvoudiger te maken. Maar als je die library zo vreemd gebruikt als jij, dan wordt het juist moeilijker. Dan is een recht-toe-recht-aan gebruik van millis() beter te overzien.
Ik zie wel steeds vaker de elapsedMillis library gebruikt worden: https://www.pjrc.com/teensy/td_timing_elaspedMillis.html.
Als je die gaat gebruiken, dan moet je daar weer mee leren omgaan, en dat kan ook weer verkeerd gaan.
Het is me niet helemaal duidelijk, maar ik zie er geen fouten in. Dus de library lijkt me okay.
Je gebruikt het echter op een merkwaardige manier.
De setTimeout is bedoelt om één keer in te stellen.
Wanneer je een knop hebt ingedrukt, dan wordt een stop of restart steeds maar weer opnieuw aangeroepen. Waarschijnlijk geeft het niet, maar eigenlijk is die library daar niet voor geschreven.
Waarschijnlijk heb je een State-Change-Detection op beide knoppen nodig.
https://www.arduino.cc/en/Tutorial/StateChangeDetection
Om de Ethernet te laten werken, mag je niet de seriele poort overspoelen. Wanneer de TX buffer vol zit door heel veel Serial.println() te gebruiken, dan wordt de sketch opeens 100 of 1000 keer langzamer.
Als de timer aktief is, dan overspoel je de seriele poort met : Serial.println(verstrekenTijd);
Je doet een client.connect() iedere keer als de loop() draait. Wil dat echt tientallen keren per seconde of vaker doen ? Je kunt beter zelf bepalen hoe vaak je dat wilt doen. Dat kan met een software timer met millis().
Sorry dat ik er nu pas goed naar hebt gekeken. De ethernet sketch had een delay, en zonder die delay gaat er van alles mis. De timer sketch overspoelde de seriële poort. En die twee bij elkaar gaat dus helemaal niet goed.
De RBD_Timer library is bedoeld om het gebruik van millis() eenvoudiger te maken. Maar als je die library zo vreemd gebruikt als jij, dan wordt het juist moeilijker. Dan is een recht-toe-recht-aan gebruik van millis() beter te overzien.
Ik zie wel steeds vaker de elapsedMillis library gebruikt worden: https://www.pjrc.com/teensy/td_timing_elaspedMillis.html.
Als je die gaat gebruiken, dan moet je daar weer mee leren omgaan, en dat kan ook weer verkeerd gaan.
15 berichten
• Pagina 2 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten