Liczba postów: 2,368
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
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.
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
(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).
Liczba postów: 2,368
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
Sok jabłkowy nie jest jabłkiem, a tym bardziej lody zrobione z tego soku.
Liczba postów: 10
Liczba wątków: 1
Dołączył: Aug 2018
Reputacja:
0
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
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
(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?
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
(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.
Liczba postów: 10
Liczba wątków: 1
Dołączył: Aug 2018
Reputacja:
0
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
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
(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).