class RTC – 실시간 클록¶
RTC 클래스는 MCU의 온칩 실시간 클록 주변장치를 제어하며, 이는 리셋 전반에 걸쳐 실제 시각(wall-clock time)을 유지합니다.
STM32 OpenMV Cam에서 machine.RTC와 pyb.RTC는 동일한 기본 객체를 가리킵니다.
사용 예시:
import machine
rtc = machine.RTC()
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
print(rtc.datetime())
생성자¶
- class machine.RTC(id: int = 0)¶
RTC싱글턴을 반환합니다.id는 포트 간 호환성을 위해 허용되지만 OpenMV가 지원하는 포트에서는0만 유효합니다(각 캠에는 하나의 RTC가 있습니다).아래 메서드들은 어떤 OpenMV 포트가 이를 노출하는지에 따라 그룹화되어 있습니다.
모든 OpenMV 포트에서 사용 가능한 메서드¶
- datetime(datetimetuple: tuple | None = None, /) tuple | None¶
현재 날짜와 시간을 가져오거나 설정합니다.
인자가 없으면 현재 값을 8-튜플
(year, month, day, weekday, hour, minute, second, subseconds)로 반환합니다.단일 8-튜플 인자가 주어지면 RTC를 해당 값으로 설정합니다.
weekday는 STM32에서 1 = 월요일부터 7 = 일요일까지이고, mimxrt에서 0 = 월요일부터 6 = 일요일까지입니다.subseconds는 STM32에서 초의 소수 부분으로 1/256초 단위입니다. mimxrt 및 alif에서는 항상0입니다.
STM32 + mimxrt 전용¶
STM32 전용¶
- info() int¶
패킹된 RTC 시작 상태를 32비트 정수로 반환합니다.
하위 16비트는 가장 최근 부팅 시 RTC가 시작하는 데 걸린 밀리초 수를 나타냅니다. 비트 0x10000은 LSE(low-speed external) 오실레이터가 실패하여 RTC가 LSI(내부 RC)로 폴백했을 때 설정됩니다. 비트 0x20000은 RTC가 (이전 전원 인가 상태에서 계속되지 않고) 부팅 시 새로 초기화되었을 때 설정됩니다.
- wakeup(timeout_ms: int | None, callback: Callable[[RTC], None] | None = None, /) None¶
주기적 웨이크업 인터럽트를 예약합니다.
timeout_ms는 밀리초 단위의 주기입니다. RTC는timeout_ms마다 발생하며machine.lightsleep()/machine.deepsleep()에서 MCU를 깨울 수 있습니다. 웨이크업 타이머를 비활성화하려면None을 전달하세요.callback은 웨이크업 IRQ에서 호출됩니다. 콜백을 설치하지 않으려면None을 전달하세요(웨이크업은 여전히 발생하여 MCU를 깨웁니다).
mimxrt + alif 전용¶
mimxrt 전용¶
- cancel(alarm_id: int = 0, /) None¶
alarm_cancel()의 사용 중단된 별칭으로, 하위 호환성을 위해 유지됩니다. MicroPython 2.0에서 제거될 예정입니다.
- irq(*, trigger: int = ALARM0, handler: Callable[[RTC], None] | None = None, wake: int = 0, hard: bool = False) None¶
RTC 알람에 대한 콜백을 등록합니다.
trigger는ALARM0이어야 합니다 – 지원되는 유일한 IRQ 소스입니다.handler는 알람이 발생할 때RTC인스턴스와 함께 호출됩니다.hard=True는 하드 인터럽트 핸들러를 등록합니다(콜백에서 힙 할당 없음).wake는 포트 간 호환성을 위해 허용되지만 효과가 없습니다.
상수¶
- ALARM0: int¶
RTC의 단일 알람 채널에 대한 식별자입니다.
alarm(),alarm_left(),alarm_cancel()및irq()의trigger인자에 전달합니다. mimxrt 포트 전용입니다.