• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
przycisk start stop
#11
Timer.h nie opiera się na sprzętowym timerze i przerwaniach tylko na millis, Panie ES2, może kawka na dzień dobry?
Masz takie śmieszne problemy bo nie wystarczy pogrzebać, trzeba napisać zgodnie z kursem kilkadziesiąt nikomu nie potrzebnych programów by lepiej kojarzyć co do czego. Nauczysz się przy okazji używania funkcji i bibliotek. Uparty jesteś z tym struganiem protezy.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#12
(15-08-2018, 14:23)kaczakat napisał(a): Timer.h nie opiera się na sprzętowym timerze i przerwaniach tylko na millis
A millis to o co się opiera? Nie o sprzętowy timer?

Timer.h to prosta droga do wywoływania zdarzenia co określony czas. W tym przypadku co sekundę można modyfikować zegar. Ze względu na to, ze używany jest wtedy mechanizm przerwań, nie należy w takich funkcjach wykonywać operacji blokujących czy używających delay. To oznacza, że nie należy używac tam wyświetlania na LCD czy transmisji po USART, I2C, SPI, chyba, ze te operacje zrobi się jako nieblokujące (na przerwaniach).
 
Odpowiedź
#13
Sok jabłkowy nie jest jabłkiem, a tym bardziej lody zrobione z tego soku.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#14
Może to prostackie rozwiązanie ale działa i na moje potrzeby wystarcza. Timer czeka na mnie z wynikiem przez pięć godzin. W sekcji void loop dodałem delay :



void loop() // główna pętla
{
if(digitalRead(OK)==LOW) // gdy wcisniemy przycisk
{
sek = 0;
minuty = 0;
godziny = 0;
dni = 0;
delay(18000000);
}

Dziękuję wszystkim za podpowiedzi, napewno nie skończę na tym etapie bo to bardzo ciekawe i w przyszłości znajdę bardziej profesjonalne rozwiązanie .

Pozdrawiam
 
Odpowiedź
#15
(15-08-2018, 15:55)mobbi napisał(a): Może to prostackie rozwiązanie ale działa i na moje potrzeby wystarcza. Timer czeka na mnie z wynikiem przez pięć godzin. W sekcji void loop dodałem delay :

delay(18000000);
}

A sprawdziłeś te 5 godzin? Czy delay akceptuje w argumencie liczbę 32 bit?
 
Odpowiedź
#16
Właśnie sprawdzam Smile minęły już 2 Smile

Pięć godzin to i tak dużo, tak naprawdę wystarczy jedna więc jest ok, poza tym testowanie akumulatora będzie w miarę możliwości nadzorowane, chodzi tylko o dokładny czas.

Pozdrawiam
 
Odpowiedź
#17
(15-08-2018, 16:17)mobbi napisał(a): chodzi tylko o dokładny czas.
To Cię zmartwię. Delay z dokładnością ma tyle wspólnego co polityk z uczciwością. Użyj mullis.
 
Odpowiedź
#18
uczę się ,a millis to narazie czarna magia a delay w kilkunastu próbach się sprawdził( 60s) nie wiem co będzie przy 5h ale ma stoper dodatkowy włączony. Zobaczymy.
Pozdrawiam
 
Odpowiedź
#19
(15-08-2018, 16:54)mobbi napisał(a): delay w kilkunastu próbach się sprawdził( 60s)

Delay sam z siebie jest niedokładny. Dodatkowo przerwania wydłużają czs jego działania i nie da się nad tym zapanować.
Millis ma dokładność kwarcurozdzielczość 1ms , chyba, że zaczniesz w przerwaniach wynowywać czasochłonne operacje (np zmiennoprzecinkowe).
 
Odpowiedź
#20
W weekend będzie więcej czasu to wdrożę się w millis, a jak na razie delay trzyma Smile a co do dokładności zobaczymy.
Pozdrawiam
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości