# Timer 模块

这是一个专为 MicroPython 设计的计时器模块，提供了精确的时间测量功能。

## 特性

- 专为 MicroPython 环境优化
- 提供毫秒级精度的时间测量
- 支持多种使用方式：基本用法、上下文管理器和装饰器
- 轻量级设计，适合资源受限的微控制器

## 安装

直接将 `timer` 目录复制到你的 MicroPython 项目中即可。

## 使用方法

### 1. 基本用法

```python
import timer

t = timer.Timer()
t.start()
# 你的代码
t.stop()
print(f"耗时: {t.elapsed_ms()}ms")
```

### 2. 上下文管理器

```python
import timer

with timer.Timer() as t:
    # 你的代码
print(f"耗时: {t.elapsed_ms()}ms")
```

### 3. 装饰器

```python
import timer

@timer.measure_time
def your_function():
    # 你的代码
    pass
```

### 4. 多次测量

```python
import timer

t = timer.Timer()

# 第一次测量
t.start()
# 代码1
t.stop()
print(f"第一次: {t.elapsed_ms()}ms")

t.reset()  # 重置计时器

# 第二次测量
t.start()
# 代码2
t.stop()
print(f"第二次: {t.elapsed_ms()}ms")
```

## API 参考

### Timer 类

#### 方法

- `start()`: 开始计时
- `stop()`: 停止计时
- `reset()`: 重置计时器
- `elapsed_ms()`: 返回经过的毫秒数
- `elapsed_seconds()`: 返回经过的秒数

### 辅助函数

- `measure_time`: 用于测量函数执行时间的装饰器
- `sleep_ms(ms)`: 休眠指定的毫秒数

## 注意事项

1. 在 MicroPython 中使用时，请使用 `import timer` 而不是 `from timer import Timer`
2. 时间测量使用 MicroPython 的 `time.ticks_ms()` 和 `time.ticks_diff()` 函数
3. 在某些微控制器上，`ticks_ms()` 可能会在约49天后溢出并重新从0开始计数

## 示例

查看 `timer_example.py` 获取完整的使用示例。

## 兼容性

- MicroPython 1.9.x 及以上版本
- 已在 ESP8266、ESP32、STM32 等多种微控制器上测试通过