5 releases (3 breaking)
0.4.0 | Jun 17, 2024 |
---|---|
0.3.1 | Dec 11, 2023 |
0.3.0 | Dec 7, 2023 |
0.2.0 | Oct 12, 2023 |
0.1.0 | Aug 28, 2023 |
#112 in Date and time
254 downloads per month
84KB
2K
SLoC
gba_clock
A real-time clock library for the GBA.
Provides access to the RTC for programs running on a Game Boy Advance, returning dates and times that are interoperable with the time
library.
Features
- Storing and reading of any valid time representable by the time crate (i.e. any year within the range ±9999, or ±999,999 if
time
'slarge-dates
feature is enabled). - Works out of the box on real hardware and popular emulators (including mGBA).
- Serializable with the
serde
library (by enabling theserde
feature).
Usage
Access to the RTC is done through the Clock
type. Create a Clock
using the current time and use the returned instance to access the current time.
use gba_clock::Clock;
use time::{
Date,
Month,
PrimitiveDateTime,
Time,
};
let current_time = PrimitiveDateTime::new(
Date::from_calendar_date(2001, Month::March, 21).expect("invalid date"),
Time::from_hms(11, 30, 0).expect("invalid time"),
);
let clock = Clock::new(current_time).expect("could not communicate with the RTC");
// Read the current time whenever you need.
let time = clock
.read_datetime()
.expect("could not read the current time");
License
This project is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0.7–0.9MB
~17K SLoC