-
Data: 2014-11-12 20:00:50
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Hmm... Nie wydaje mi się, żeby tu chodziło tylko o zajmowanie cykli
procesora przez operacje na zmiennych 32bitowych w przerwaniu.
Trochę przerobiłem program:
1) Zwiększyłem czas pomiędzy kolejnymi przerwaniami do 20 ms.
2) Przeniosłem obsługę niekrytycznych timerów do pętli głównej. Nic
złego się nie stanie, jeśli od czasu do czasu odczyt jakiegoś czujnika
opóźni się o sekundę albo uptime będzie pokazywał wartość zafałszowaną o
kilka sekund.
W tej chwili procedura obsługi przerwania wygląda następująco:
ISR(TIMER0_COMPA_vect) {
twenty_millis++;
if (twenty_millis > 50) {
geiger_pulses[seconds] = TCNT1;
TCNT1 = 0;
seconds = (seconds + 1) % 60;
one_second_tick = 1;
if (rtc) rtc++;
twenty_millis = 0;
}
}
Normalnie jest to tylko inkrementacja jednej zmiennej ośmiobitowej. Raz
na sekundę dochodzi do tego jeszcze kilka operacji na zmiennych
szesnastobitowych oraz inkrementacja zegara (zmienna 32bit), jeśli czas
został już pobrany. Trochę trudno mi uwierzyć, że zajmuje to więcej niż
20ms...
Poza tym jest jeszcze jedna dziwna sprawa - parę razy tuż po wymuszonej
synchronizacji czasu zauważyłem opóźnienie wynoszące np. 3 albo i 10
sekund. Przecież niemożliwe, żeby taka wartość nabiła się w kilka sekund!
Następne wpisy z tego wątku
- 12.11.14 20:07 Marek
- 12.11.14 20:48 Atlantis
- 12.11.14 21:26 Marek
- 12.11.14 21:29 J.F.
- 12.11.14 21:36 Marek
- 12.11.14 22:20 Atlantis
- 12.11.14 23:14 J.F.
- 12.11.14 23:18 Marek
- 12.11.14 23:20 Jakub Rakus
- 12.11.14 23:24 Atlantis
- 12.11.14 23:32 Atlantis
- 12.11.14 23:43 Grzegorz Niemirowski
- 12.11.14 23:47 Atlantis
- 12.11.14 23:51 Marek
- 12.11.14 23:57 Atlantis
Najnowsze wątki z tej grupy
- Disk on Module, czym to odczytać?
- Pasta ochronna? Lutownicza?
- zagadka pneumatyczna
- Klip testowy, jak sie to używa
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
- Co może być gorsze od pożaru elektryka?
- daltonizm
- Mały Linux
Najnowsze wątki
- 2025-11-18 kumulacja
- 2025-11-18 Mokry sen grupowego osiołka I/O :)
- 2025-11-18 Simki
- 2025-11-18 Warszawa => DevOps Engineer <=
- 2025-11-18 Warszawa => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2025-11-18 Wrocław => Programista React ze znajomością C++ <=
- 2025-11-18 Wrocław => React Developer with knowledge of C++ <=
- 2025-11-18 Warszawa => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-11-18 Warszawa => Cloud Engineer <=
- 2025-11-18 Nowe przepisy dotyczące pieszych
- 2025-11-18 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-11-18 Warszawa => Project Manager (AI and innovation) <=
- 2025-11-18 Warszawa => Project Manager (AI and innovation) <=
- 2025-11-18 Warszawa => Java Developer <=
- 2025-11-18 Warszawa => System Administrator <=




Prezenty pod choinkę z drugiej ręki? Polacy wciąż tradycjonalistami