logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wemos D1 mini / załączanie wyjścia tylko na określony czas millis()

dominenator 28 Lis 2017 13:23 1407 4
REKLAMA
  • #1 16854505
    dominenator
    Poziom 11  
    Posty: 62
    Ocena: 6
    Witam,
    nie mogę ujarzmić Wemos D1 mini pod względem millis(). Próbuję naskrobać kawałek kodu w którym po odebraniu polecenia z przeglądarki załączy wyjście w tym przypadku do celów testowych "fabryczną diodę led" na 1 sekundę, wyłączy na 2sek i znowu załączy na 3 sek a następnie wygasi. Nijak nie mogę ujarzmić liczenia czasu. Można pójść na łatwiznę i zrobić na delay ale w tym momencie nie będę mógł przerwać przed upływem zadeklarowanego czasu. Czy mogę liczyć na pomoc w tym temacie?
    Poniżej to co udało mi się skrobnąć.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    z góry dzięki za pomoc :)
  • REKLAMA
  • #2 16855096
    krzbor
    Poziom 29  
    Posty: 1783
    Pomógł: 42
    Ocena: 1072
    Nie bardzo wiem, jak to ma działać. Po otrzymaniu "/ON" wywołujesz led1(). Jednak jest to jedyne wywołanie i zawsze ze starttime=0. Być może wystarczy w loop() dodać wywołanie led1(), ale nie wiem, czy nie będzie to za częste. Poszczególne warunki (np. (millis() - starttime) >= time1) będą bez przerwy wywoływane. Najlepiej dodać jakąś zmienną stanu, która po jednorazowym sprawdzeniu warunku zostanie ustawiona i zablokuje kolejne wejście.
  • REKLAMA
  • #3 16856052
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 16857379
    dominenator
    Poziom 11  
    Posty: 62
    Ocena: 6
    Wszystko jak najbardziej rozumiem. Mrugać diodą w loopie nie ma problemu z określonym interwałem ale jak wywołać serie mrugnięć za pomocą po otrzymaniu "/ON". Jestem początkujący w tym temacie stad z waszego punktu widzenia banalne błędy i banalne pytania :) za pomocą delay problem z millisami znika ale pojawia się inny, nie mogę przerwać działania bo program zawieszony jest przez delay ;)

    Dodano po 39 [minuty]:

    W skrócie pisząc chciałbym coś takiego zrobić na millisach.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #5 16857850
    krzbor
    Poziom 29  
    Posty: 1783
    Pomógł: 42
    Ocena: 1072
    Przecież napisałem co trzeba zrobić. Sprawdziłeś?
REKLAMA