ESP8266 loopt vast
Re: ESP8266 loopt vast
ik ga vanavond/vannacht de code weer draaien om te kijken of het morgenvroeg de draad weer oppakt als er pulsen komen. Maar ik wil ook wel beter begrijpen wat ik nu eigenlijk draai:)
Advertisement
Re: ESP8266 loopt vast
inmiddels ben ik behoorlijk in verwarring.
als ik #define SIMULATIE uitzet(comment) dan werken mijn "echte pulsen" niet meer.
Morgen maar eens met een fris hoofd de code eens echt bestuderen....
als ik #define SIMULATIE uitzet(comment) dan werken mijn "echte pulsen" niet meer.
Morgen maar eens met een fris hoofd de code eens echt bestuderen....
Re: ESP8266 loopt vast
Mogge!
Nog eens netjes de test en de "werkelijke loop" gedraaid. Allebei met een tellertje.
De test loop door , soms duurt het een paar seconden voor hij verder loopt maar dan gaat hij weer verder.
De werkelijke loop met //#define SIMULATIE loopt vast. meestal na 239 loops. Soms eerder, ook als ik de send time korter maak of als ik de Serial.println(url); uitzet.
Wat voor testje zou ik kunnen doen om mijn eigen omgeving afhankelijkheid uit te schakelen. Ik bedoel WIFI en PC poort?
Nog eens netjes de test en de "werkelijke loop" gedraaid. Allebei met een tellertje.
De test loop door , soms duurt het een paar seconden voor hij verder loopt maar dan gaat hij weer verder.
De werkelijke loop met //#define SIMULATIE loopt vast. meestal na 239 loops. Soms eerder, ook als ik de send time korter maak of als ik de Serial.println(url); uitzet.
Wat voor testje zou ik kunnen doen om mijn eigen omgeving afhankelijkheid uit te schakelen. Ik bedoel WIFI en PC poort?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: ESP8266 loopt vast
Ik ben zo eens gaan googelen en kwam meerdere artikelen tegen waar het op lijkt dat als je in een WiFi sessie bent interrupts niet goed werken. Je zou de interrupts kunnen disabelen door net voor de Client.connect() de interrupt te disconnecten:
cpp code
En na de Client.close() weer te attachen
cpp code
cpp code
detachInterrupt(2);
En na de Client.close() weer te attachen
cpp code
attachInterrupt(2, onPulse, FALLING);
Re: ESP8266 loopt vast
Ik neem aan in de getTime() functie
Ik heb dit gedaan
Zonder resultaat. loopt nog steeds vast ik de "echte" loop na 238 loops
Ik heb dit gedaan
- Code: Alles selecteren
char * getTime() // functie om tijd op te halen van website
{
char *startPositie; // start positie van datum veld in regel
uint8_t charArrayIndex = 0; // index binnen array
char charArray[200]; // ff ruim genomen buffer voor ontvangen regels
charArray[0] = '\0'; // de regel leegmaken
static WiFiClient client;
//
// maak connectie met een server om de tijd te ontvangen
//
detachInterrupt(2);
while (!client.connect("www.google.com", 80)) {
Serial.println("connection failed, retrying...");
}
client.print("HEAD / HTTP/1.1\r\n\r\n"); // dit zorgt ervoor dat de server de tijd teruggeeft
while (!client.available()) {
yield(); // om de stress op de server te verlichten
}
//
// Als er data is te verwerken
//
while (client.available()) {
charArray[charArrayIndex] = client.read(); // lees teken in de tabel
if (charArray[charArrayIndex] == '\r') { // blijven lezen tot er een return komt
charArray[charArrayIndex] = '\0'; // en sluit te tekst af met een '\0'. De return halen we gelijk weg
//
// kijk of dit de datumregel is
//
startPositie = strstr(charArray, "\nDate: ");
//
// is dit is onze regel?
//
if (startPositie != NULL) {
//
// yep dus skip 7 posities en we hebben het startpunt
//
startPositie = startPositie + 7; //was 7
client.stop();
attachInterrupt(2, onPulse, FALLING);
return startPositie;
} else {
// Serial.println(" niet de gewenste regel dus zet hem maar weer op 0 in else");
//
charArray[0] = '\0';
charArrayIndex = 0;
}
} else {
charArrayIndex++;
}
}
Serial.println("De tijd server stuurt niets terug");
client.stop();
attachInterrupt(2, onPulse, FALLING);
startPositie = charArray;
return startPositie; // lege tabel dus geen datum
}
Zonder resultaat. loopt nog steeds vast ik de "echte" loop na 238 loops
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: ESP8266 loopt vast
Helaas de interruot lijkt het ook niet te zijn. Heb bij mij stopt hij bij 247x consequent. Heb ook al de TX buffer van de UART vergroot. Maakt geen zak uit.
Leuke uitdaging
Leuke uitdaging
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: ESP8266 loopt vast
Weer een stapje verder...... hij blijft 'hangen' op een antwoord van Google. Nu nog uitzoeken of daar een limiet in zit. anders eens een andere time server proberen. Ook een eigen URL gebruikt maar zelfde effect.
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten