ATNEL tech-forum
https://forum.atnel.pl/

RTC obliczanie czasu który upłynął
https://forum.atnel.pl/topic21752.html
Strona 1 z 1

Autor:  tomasz1987 [ 23 gru 2018, o 03:51 ]
Tytuł:  RTC obliczanie czasu który upłynął

Witam, szukam sposobu na obliczenie czasu który upłyną między dwoma odczytami z RTC no i nie idzie :P
nie chcieli byście zerknąć gdzie tak mocno zbłądziłem?
chyba że odpowiedz jest w którejś z książek, to mam je ze sobą

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


mniejwięcej pewnie widać o co mi chodziło
w strukturze rtc przechowywany jest pierwszy odczyt a w rtc_new następny no i zależy na ich odjęciu

Autor:  kazekat [ 23 gru 2018, o 10:45 ]
Tytuł:  Re: RTC obliczanie czasu który upłyną

A gdybyś powołał dwie dodatkowe zmienne zamieniając sekundy, minuty, godziny czasu pierwszego i później drugiego to łatwiej odejmować. Miałem podobny problem tutaj topic21286.html spójrz może coś Ci się nasunie na myśl.

Autor:  tomasz1987 [ 23 gru 2018, o 11:00 ]
Tytuł:  Re: RTC obliczanie czasu który upłyną

Wczoraj jak zamknąłem oczy
Wpadłem na to że problemem jest sposób w jaki są przechowywane zmienne
A to że formatuje wyjście jak wyrzucam to na rs232 tylko mi to maskuje
Jeszcze nie miałem czasu tego sprawdzić ale może między karpiem a uszkami

Autor:  kazekat [ 23 gru 2018, o 11:17 ]
Tytuł:  Re: RTC obliczanie czasu który upłyną

Po odjęciu wyjdą Ci sekundy ale można sobie zmienić na godziny, minuty a na pewno łatwiej operować na takich dodatkowych zmiennych.

Autor:  tomasz1987 [ 23 gru 2018, o 14:04 ]
Tytuł:  Re: RTC obliczanie czasu który upłyną

ok to tak
liczby w tej struktuże sa przechowywane jako BCD
więc dodając te dane w takiej postaci nie zawsze uzyskamy poprawny wynik :P
dla przykładu 02.02.00
kiedy zsumujemy wyjdzie nam 4
ale jak sumujemy 10.10.00 to wyjdzie 32
więc dodałem funkcję bcd2dec
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


no i wyszło 20


tak to jest jak się robi coś o 2 w nocy jak się powinno spać

wesołych świąt :D

Autor:  kozaa71 [ 23 gru 2018, o 18:48 ]
Tytuł:  Re: RTC obliczanie czasu który upłyną

Witam.
Popraw babola w tytule bo kłuje w oczy :shock:
Pozdrawiam.

Autor:  jony15 [ 24 gru 2018, o 10:45 ]
Tytuł:  Re: RTC obliczanie czasu który upłynął

Witam nie wiem czy do końca Ciebie zrozumiałem - chcesz obliczyć jaki czas upłynął np pomiędzy jednym zdarzeniem o czasie np 02:00:00 a drugim zdarzeniem powiedzmy o 11:55:00. Jeśli nie zależy ci na sekundach to ja bym zrobił to tak: odczytujesz z rtc -> przerabiasz do "dec" i zamieniasz godziny + minuty na jedną zmienna:

czas_u16=(( godziny * 60) +minuty);

z drugim czasem robisz dokładnie to samo a później zwykłe odejmowanie i masz czas jaki upłynął. Wyświetlenie wyniku:

godziny=czas_u16/60; minuty=czas_u16%60;

Do wyświetlania czasu zegarka, czy do wyświetlania w menu, lub czasu który upłynął - używasz tylko jednej funkcji.Jeśli chciałbyś liczyć czas z sekundami to trochę trudniej gdyż musiał byś użyć uint32, albo sekundy liczyć oddzielnie.

Autor:  tomasz1987 [ 24 gru 2018, o 11:50 ]
Tytuł:  Re: RTC obliczanie czasu który upłynął

Dzięki za podpowiedź
Ale wolę dodawać i odejmowaćna uint8 jak mnożyć na uint16
Taką loszkę napisałem


Sorki ale taka tylko kopię mam

Obrazek

Tak tak wiem milion bcd2dec
Jak będę miał zrobię sobie nowy kontener z wartościami w uint8

Autor:  mirekk36 [ 24 gru 2018, o 12:22 ]
Tytuł:  Re: RTC obliczanie czasu który upłynął

tomasz1987 napisał(a):
Taką loszkę napisałem

No rzeczywiście masakra, po jaki gwint miliard razy wykonujesz bcd2dec() ? Zamiast RAZ wczytać do zmiennych i skonwertować z BCD na DEC i wtedy porobić obliczenia.

Autor:  tomasz1987 [ 24 gru 2018, o 12:24 ]
Tytuł:  Re: RTC obliczanie czasu który upłynął

Nie ma to jak edytować posta kiedy ktoś pisze następnego :P

Tak wszystko wiem pisałem na szybko żeby sprawdzić czy działa

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/