Arduino Polska Forum

Pełna wersja: Millis zamiast delay
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam , mam problem odnośnie zrozumieniem pewnej komendy ; mianowicie- millis () 
 Zamysł projektu ogólne opiera się, aby program zliczzliczał wwciśniecia przycisku , oraz odpowiednio rreagował na tę zmienną . Czyli 
jeżeli  ( liczba kliknięć = x ) {zrób y }

Już mam ogarnięte Miganie diody za pomocą millis :

Kod:
Int czasDrugi=0;
Int opoznienie =1000;
Unsigned long czas;
Boolean stan = LOW ;

Void setup  () {
pinMode  (4, OUTPUT )
}

Void loop {
Stan=!stan;
Czas= millis ();
If ( czas - czasDrugi >= opoznienie){

CzasDrugi = czas ;
DigitalWrite  (4, stan );}
}
 A co przypadku jeżeli chciałbym uzyskać efekt " przeskakujacej " diody przy pomocy millis ()?  
 
- ten program  nie jest sprawdzony na komputerze,  czy dokładnie działa,  ponieważ był pisany z pamieci odręcznie.  Ogólny zamysł mysle , że został  poprawnie przedstawiony .
Witam,
Można cokolwiek pomóc ale trzeba się odnieść do skompilowanego programu, a nie takiego "z głowy".
Kod, który zamiesciles jest chaotyczny i z błędami.
Pozdrawiam,
Tomek.
(16-07-2017, 07:09)Smaczek napisał(a): [ -> ]Witam,
Można cokolwiek pomóc ale trzeba się odnieść do skompilowanego programu, a nie takiego "z głowy".
Kod, który zamiesciles jest chaotyczny i z błędami.
Pozdrawiam,
Tomek.

Faktycznie jest w jakimś stopniu chaotyczny.  Czyli twoim zdaniem napisanie takiego kodu , jaki mialem zamysł byłby zbytnio skomplikowany?
Witam,
Zrealizowanie Twojego zamysłu jest jednym z najprostszych zadań programistycznych. Generalnie, gdyby nie drgania styków wylacznika to zwłoki czasowe byłby zbędne. Poza tym trudno się odnosić do programu, który się nie skompiluje.
Pozdrawiam,
Tomek
Hej. Spójrz na przykład: Blink Without Delay. Przeanalizuj go kilkukrotnie a jak już go zrozumiesz to dalej poradzisz sobie sam. Kiedyś sam miałem problem z millis więc zaczołem od podstaw a teraz często korzystam z tej funkcji. Inne rozwiązanie jest takie że ktoś za ciebie napisze ten kod a ty będziesz miał jeszcze większy problem w zrozumieniu millis.