[#1] timer.device
Czesc
potrzebuje zawiadomic moj program ze minelo 5 sekund od powiedzmy teraz (w ladny systemowy sposob).
Wczesniej uzylem polecenia CurrentTime, zapisalem sekundy. Program ciagle otrzymywal wiadomosci wiec czas lecial a ja sprawdzalem CurrentTime - jesli wkoncu byl on o 5 sekund wiekszy to mialem to co chcialem - oczywiscie to wyglada paskudnie i cos tu powoduje zwis (barddzo rzadko ale jest zawsze wlasnie w trakcie tego czekania/sprawdzania)

Znalazlem takie cos:
Three primary steps are required to open the timer device:

struct MsgPort *TimerMP;      // Message port pointer
struct Timerequest *TimerIO;  // I/O structure pointer
 
// Create port for timer device communications
if (!(TimerMP = IExec->AllocSysObjectTags(ASOT_PORT, TAG_END)))
    cleanexit(" Error: Can't create port\n", RETURN_FAIL);

// Create message block for device IO
TimerIO = IExec->AllocSysObjectTags(ASOT_IOREQUEST,
    ASOIOR_Size, sizeof(struct TimeRequest),
    ASOIOR_ReplyPort, TimerMP,
    TAG_END);

// Open the timer device with UNIT_MICROHZ
if (error = IExec->OpenDevice(TIMERNAME, UNIT_MICROHZ, TimerIO, 0))
    cleanexit(" Error: Can't open Timer.device\n", RETURN_FAIL);


ale nieco ponizej napisali :
The procedure for applications which only use the timer device functions is slightly different:

struct TimerIFace *ITimer   /* global interface pointer */
 
/* Allocate memory for TimeRequest and TimeVal structures */
struct TimeRequest *TimerIO = IExec->AllocVecTags(sizeof(struct TimeRequest),
    AVT_ClearWithValue, 0,
    TAG_END);
 
if (TimerIO == NULL)
    cleanexit(" Error: Can't allocate memory for I/O structures\n", RETURN_FAIL);
 
if (error = IExec->OpenDevice(TIMERNAME, UNIT_MICROHZ, TimerIO, 0))
    cleanexit(" Error: Can't open Timer.device\n", RETURN_FAIL);
 
/* Set up pointers for timer functions */
struct Library *TimerBase = (struct Library *)TimerIO->Request.io_Device;
ITimer = IExec->GetInterface(TimerBase, "main", 1, NULL);


Skoro ja potrzebuje tylko odliczac sekundy i wyslac sygnal do mojego programu to mnie interesuje ta druga czesc, tak (nie potrzebuje portu)?
[#2] Re: timer.device

@peceha, post #1

W tym przypadku potrzebujesz portu i tej pierwszej wersji. Żeby zawiadomić program za 5 sekund używasz komendy TR_ADDREQUEST za pomocą DoIO() - synchronicznie, lub SendIO() - asynchronicznie.

Tej drugiej wersji używa się, gdy chcesz korzystać tylko z funkcji bibliotecznych timer.device jak np. ReadEClock().

Tutaj znajdziesz więcej detali:
http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_3._guide/node0572.html
[#3] Re: timer.device

@Hexmage960, post #2

Dzieki
tak to jest gdy za duzo rzeczy na raz :) - miesza sie i miesza, hehe
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem