# RTC_SetTimeAsync

## Syntax

  `#include <nitro/rtc.h>`

      RTCResult RTC_SetTimeAsync(
                  const RTCTime*    time,
                  RTCCallback       callback,
                  void*             arg );

## Arguments

time | Pointer to the buffer storing time data.
callback | Pointer to the callback function. This callback is called from inside the interrupt handler.
arg | Argument to pass to the callback function.

## Return Values

If the request succeeds, it returns 0. If the request fails, it returns a numeric value other than 0.

## Description

Asynchronously writes time data to the real-time clock. It sends time data to ARM7 and returns the process result without waiting for a response from the processor. To get the result from the processor, you must use the result argument. If this function fails, no operation is performed, and no user callback function is called.

## Note

Do not specify nonexistent hour:minute:second times in the time data to write.
Also, the values in the buffer specified by the time argument are referenced in a manner that is not synchronous with this function. Do not modify the buffer contents until a user callback function confirms the completion of the asynchronous process.
Because it is prohibited for applications to change the system time, use this API only for debugging during development.
In FINALROM builds, this function always fails and `RTC_RESULT_INVALID_COMMAND` is returned.

## See Also

`RTC_SetTime`
`RTC_GetTime`
`RTC_GetTimeAsync`
`RTCResult`
`RTCTime`
`RTCCallback`

## Revision History

2009/07/29 Explained that the time setting command always fails in FINALROM builds.
2005/06/27 Added additional text indicating that callbacks are called from interrupt handlers.
2004/07/01 Updated descriptions to standardize the time notation.
2004/05/18 Initial version.

CONFIDENTIAL