rp2: Integrate RP2350 and use aon_timer instead of rtc API.

This commit separates various build settings and include files that are
specific to RP2040 and RP2350, and uses the aon_timer interface instead of
rtc, to work across both MCU variants.

Signed-off-by: Damien George <damien@micropython.org>
Signed-off-by: Phil Howard <phil@gadgetoid.com>
This commit is contained in:
Peter Harper
2024-05-23 10:57:14 +01:00
committed by Damien George
parent 27aeade832
commit d2c85c74da
11 changed files with 142 additions and 90 deletions

View File

@@ -26,28 +26,30 @@
#include "py/obj.h"
#include "shared/timeutils/timeutils.h"
#include "hardware/rtc.h"
#include "pico/aon_timer.h"
// Return the localtime as an 8-tuple.
static mp_obj_t mp_time_localtime_get(void) {
datetime_t t;
rtc_get_datetime(&t);
struct timespec ts;
aon_timer_get_time(&ts);
timeutils_struct_time_t tm;
timeutils_seconds_since_epoch_to_struct_time(ts.tv_sec, &tm);
mp_obj_t tuple[8] = {
mp_obj_new_int(t.year),
mp_obj_new_int(t.month),
mp_obj_new_int(t.day),
mp_obj_new_int(t.hour),
mp_obj_new_int(t.min),
mp_obj_new_int(t.sec),
mp_obj_new_int(t.dotw),
mp_obj_new_int(timeutils_year_day(t.year, t.month, t.day)),
mp_obj_new_int(tm.tm_year),
mp_obj_new_int(tm.tm_mon),
mp_obj_new_int(tm.tm_mday),
mp_obj_new_int(tm.tm_hour),
mp_obj_new_int(tm.tm_min),
mp_obj_new_int(tm.tm_sec),
mp_obj_new_int(tm.tm_wday),
mp_obj_new_int(tm.tm_yday),
};
return mp_obj_new_tuple(8, tuple);
}
// Return the number of seconds since the Epoch.
static mp_obj_t mp_time_time_get(void) {
datetime_t t;
rtc_get_datetime(&t);
return mp_obj_new_int_from_ull(timeutils_seconds_since_epoch(t.year, t.month, t.day, t.hour, t.min, t.sec));
struct timespec ts;
aon_timer_get_time(&ts);
return mp_obj_new_int_from_ull(ts.tv_sec);
}