@Krashan, post #2
struct ClockData clockdata; struct timeval tv; GetSysTime(&tv); printf("GetSysTime():\t%d %d\n", tv.tv_secs, tv.tv_micro); Amiga2Date(tv.tv_secs, &clockdata); printf("Amiga2Date(): sec %d min %d hour %d\n", clockdata.sec, clockdata.min, clockdata.hour); printf(" mday %d month %d year %d wday %d\n", clockdata.mday, clockdata.month, clockdata.year, clockdata.wday);
@mateusz_s, post #4
@teh_KaiN, post #7
Czy operacje matematyczne na takich liczbach wymagaja otwarcia jakichs innych bibliotek? Dostaje szalone cyfry. Powiem szczerze zamotane troche.
@Hexmage960, post #8
@mateusz_s, post #4
To ja jeszcze dopytam na przyszłość przy okazji: jakiej funkcji użyć,Na klasycznych Amigach najdokładniejszy zegar, jaki można do tego wykorzystać, to tak zwany zegar E, o częstotliwości 709379 Hz (PAL) lub 715909 Hz (NTSC). Zbocza tego zegara są zliczane przez 16-bitowy timer A układu CIA-B i są dostępne pod adresami $BFD500 (wyższy bajt) i $BFD400 (niższy bajt). Najszybciej jest czytać bezpośrednio, ale trzeba pamiętać, że ten licznik ma tylko 16 bitów, więc przepełnia się co jakieś 0,09 sekundy. System operacyjny ma ustawione przerwanie na przepełnienie tego timera i tworzy z niego 64-bitowy licznik (startujący od zera przy boocie systemu). Można go odczytać za pomocą wspomnianej przez Hexmage960 funkcji ReadEClock(). Funkcję wywołujemy podając jej wskaźnik na adres struktury EClockVal, która składa się po prostu z 2 32-bitowych pól tworzących łącznie 64-bitową liczbę. Funkcja wypełnia strukturę aktualną wartością licznika, a jako swój wynik zwraca częstotliwość EClocka w Hz, więc można przeliczyć na sekundy.
jeśli chcemy mierzyć czas danej klatki w milisekundach, fpsy po prostu?
Czy 1 milisekunda to najmniejsza możliwa wartość czy jakieś dziesiętne cześci też wchodzą w grę?
@Krashan, post #2
@WyciorX, post #14
A jak najszybciej przerzucić datę z jednego RTC do drugiego, który znajduje się pod innym adresem?System Amigi obsługuje zegar RTC tylko pod adresem standardowym. Jeżeli jednak dorobiłeś układ, który programowo pozwala na podstawienie jednego lub drugiego RTC pod standardowy adres to:
@mateusz_s, post #13
Bede robil pod rtg, chce po prostu wiedzieć ile czasu schodzi w pętliTo ja bym poszedł w ReadEClock(). Żeby sobie uprościć liczenie różnicy czasów, można po prostu zdefiniować zmienną całkowitą 64-bitową i wskaźnik na nią zrzutować na *EClockVal i podać jako parametr. Potem odejmujesz od siebie czasy sprzed pętli i po pętli i masz ile zajęła EClocków. Po podzieleniu przez częstotliwość EClocka masz w sekundach.
Albo liczyć fpsy.. najprostszy zegar by mi wystarczyl ;)