clase RTC – reloj de tiempo real¶
La clase RTC controla el periférico de reloj de tiempo real integrado en el MCU, que mantiene la hora del reloj de pared a través de los reinicios.
En las OpenMV Cam STM32, machine.RTC y pyb.RTC se refieren al mismo objeto subyacente.
Ejemplo de uso:
import machine
rtc = machine.RTC()
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
print(rtc.datetime())
Constructores¶
- class machine.RTC(id: int = 0)¶
Devuelve el singleton
RTC.idse acepta por compatibilidad entre puertos, pero solo0es válido en los puertos compatibles con OpenMV (cada cámara tiene un RTC).Los métodos siguientes están agrupados según qué puertos de OpenMV los exponen.
Métodos disponibles en todos los puertos de OpenMV¶
- datetime(datetimetuple: tuple | None = None, /) tuple | None¶
Obtiene o establece la fecha y hora actuales.
Sin argumento, devuelve el valor actual como una tupla de 8 elementos
(year, month, day, weekday, hour, minute, second, subseconds).Con un único argumento de tupla de 8 elementos, establece el RTC a ese valor.
weekdayes 1 = Lunes a 7 = Domingo en STM32, y 0 = Lunes a 6 = Domingo en mimxrt.subsecondses la parte fraccionaria del segundo en unidades de 1/256 de segundo en STM32; en mimxrt y alif siempre es0.
solo STM32 + mimxrt¶
- init(datetime: tuple) None¶
Inicializa el RTC.
En el puerto mimxrt (OpenMV Cam RT1062),
datetimees obligatorio y usa la tupla de 8 elementos(year, month, day, weekday, hour, minute, second, subseconds).En las OpenMV cams STM32,
init()no toma ningún argumento: (re)inicia el periférico RTC, dejando la fecha / hora actual sin cambios.
- calibration(value: int | None = None, /) int | None¶
Obtiene o establece el desplazamiento de calibración del RTC (usado para compensar el error de frecuencia del cristal).
El rango aceptado y las unidades de
valueson específicos del hardware – el valor se escribe directamente en el registro de ajuste del RTC del MCU. Consulte el manual de referencia correspondiente de STM32 / i.MX RT para conocer la codificación exacta.
solo STM32¶
- info() int¶
Devuelve el estado de arranque empaquetado del RTC como un entero de 32 bits.
Los 16 bits bajos dan el número de milisegundos que el RTC tardó en arrancar en el arranque más reciente. El bit 0x10000 se establece cuando el oscilador LSE (externo de baja velocidad) falló y el RTC recurrió al LSI (RC interno). El bit 0x20000 se establece cuando el RTC se inicializó de nuevo en el arranque (en lugar de continuar desde el encendido anterior).
- wakeup(timeout_ms: int | None, callback: Callable[[RTC], None] | None = None, /) None¶
Programa una interrupción de despertar periódica.
timeout_mses el período en milisegundos. El RTC se dispara cadatimeout_msy puede despertar el MCU desdemachine.lightsleep()/machine.deepsleep(). PaseNonepara deshabilitar el temporizador de despertar.callbackse invoca desde la IRQ de despertar; paseNonepara no instalar ningún callback (el despertar seguirá disparándose y despertará el MCU).
solo mimxrt + alif¶
- alarm(id: int, time: int | tuple, *, repeat: bool = False) None¶
Arma la alarma del RTC.
idselecciona el canal de alarma (useALARM0).timees un número entero de milisegundos en el futuro, o una tupla de fecha y hora. Paserepeat=Truepara rearmarla automáticamente después de cada disparo (solo válido cuandotimees un recuento de milisegundos).En alif solo se admite la forma de recuento de milisegundos.
solo mimxrt¶
- alarm_left(alarm_id: int = 0, /) int¶
Devuelve el número de milisegundos restantes antes de que se dispare la alarma identificada por
alarm_id.
- cancel(alarm_id: int = 0, /) None¶
Alias obsoleto de
alarm_cancel(), conservado por compatibilidad con versiones anteriores. Programado para su eliminación en MicroPython 2.0.
- irq(*, trigger: int = ALARM0, handler: Callable[[RTC], None] | None = None, wake: int = 0, hard: bool = False) None¶
Registra un callback para la alarma del RTC.
triggerdebe serALARM0– la única fuente de IRQ admitida.handlerse invoca con la instanciaRTCcuando se dispara la alarma.hard=Trueregistra un manejador de interrupción de hardware (sin asignación de memoria en el callback).wakese acepta por compatibilidad entre puertos, pero no tiene efecto.
Constantes¶
- ALARM0: int¶
Identificador del único canal de alarma del RTC. Pase a
alarm(),alarm_left(),alarm_cancel()y al argumentotriggerdeirq(). Solo puerto mimxrt.