# RTC 实时时钟使用教程

## 什么是 RTC？

**RTC（Real-Time Clock）实时时钟**
是一种独立于主处理器的时钟模块，用于跟踪当前日期和时间，即使系统重启也能保留设定时间（若电池供电）。它广泛应用于：

- 数据时间戳记录（如日志）
- 定时触发控制
- 低功耗唤醒场景

## K230 RTC 特性

| 特性   | 描述                                 |
| ---- | ---------------------------------- |
| 模块支持 | K230 内置 1 路 RTC 模块                 |
| 精度   | 秒级精度，支持设置至微秒                       |
| 典型应用 | 时间同步、日期显示、事件调度                     |
| 时间格式 | 返回元组格式 `(年, 月, 日, 周, 时, 分, 秒, 微秒)` |

## 应用示例：获取与设置系统时间

本示例展示了如何使用 `RTC` 模块设置并读取系统时间。

### 示例代码

```python
from machine import RTC

# ========== 初始化 RTC ==========
rtc = RTC()

# ========== 获取当前时间 ==========
print("当前时间：", rtc.datetime())

# ========== 设置当前时间 ==========
# 设置为：2024 年 2 月 28 日（星期三）23:59:00.000000
rtc.init((2024, 2, 28, 2, 23, 59, 0, 0))
print("新时间设置后：", rtc.datetime())
```

## 接口说明

| 方法名              | 说明                                                |
| ---------------- | ------------------------------------------------- |
| `RTC()`          | 创建 RTC 实例                                         |
| `datetime()`     | 获取当前 RTC 时间，返回元组                                  |
| `init(datetime)` | 设置 RTC 时间，参数为 8 元素的元组 `(年, 月, 日, 周, 时, 分, 秒, 微秒)` |

## 示例解析

1. **初始化 RTC 对象**
   `rtc = RTC()` 创建并绑定实时时钟实例。

1. **获取当前时间**
   `rtc.datetime()` 返回当前设定的时间元组，如 `(2024, 2, 28, 2, 23, 59, 0, 0)` 表示 2024 年 2 月 28 日，星期三 23:59:00。

1. **设置当前时间**
   `rtc.init(...)` 可设定新的时间，通常用于程序启动时同步外部时间源。

## 时间元组说明

| 索引 | 含义 | 示例值      |
| -- | -- | -------- |
| 0  | 年  | 2024     |
| 1  | 月  | 2        |
| 2  | 日  | 28       |
| 3  | 星期 | 2（0=星期日） |
| 4  | 小时 | 23       |
| 5  | 分钟 | 59       |
| 6  | 秒  | 0        |
| 7  | 微秒 | 0        |

## 延伸阅读

- [K230 RTC API 文档](../../api/machine/K230_CanMV_RTC模块API手册.md)
