# 项目名称：Icu_Demo
---
## 功能描述

本演示通过ETMR的比较输入功能和端口输入捕获功能，捕获IO输入的Pwm周期和占空比时间。PWM输出信号由ETMR0_CH0生成，输入信号由ETMR0_CH1捕获。输入信号的周期和占空比通过ETMR0_CH1的输入捕获功能计算。

---
## 设置步骤

+ ***步骤1***: 使用YCT工具打开`Icu_Demo.yct`，根据您的需求配置工具链（默认使用VS Code + GCC）。
+ ***步骤2***: 生成代码。如有需要，您可以修改配置（以适应您自己的硬件设计）。确保所有修改无误后再生成代码。
+ ***步骤3***: 使用选定的IDE（VS Code/IAR/Keil）打开生成的项目。
+ ***步骤4***: 编译项目，给EVB上电，并使用可用调试器（如J-Link调试探头）将其下载到EVB。
+ ***步骤5***: 连接eTMR0_CH0<->eTMR0_CH4，分别按下SW2、SW3，触发Port边沿检测，然后开始捕获输入信号的周期和占空比。
+ ***步骤6***: 将`Dbg_MeasureDutyCycleValue_Ch`添加到您的监视窗口，并检查输入信号的周期和占空比。
---
## ICU硬件连接图
| 功能 | MCU引脚 | EVB引脚头 | 描述 |
| ---- | ------- | --------- | ---- |
| eTMR0_CH0 <-> eTMR0_CH4 | PTB16 <-> PTB12 | H3-14P <-> H3-18P | eTMR0_CH4（ICU）输入捕获 eTMR0_CH0（PWM）输出比较 |
---
## 硬件需求
+ **EVB**: YTM32B1MD1-EVB-Q100-Rev.A/B
+ **调试器**: J-Link HW v9 或更高版本，安装了 YUNTU `YTM32B1MD1` 补丁（支持包）。

***注意***: 请确认EVB底部的版本号，如果是***YTM32B1MD1-EVB-Q100-Rev.A***，`Icu_Demo`请使用以`_RevA`结尾的样例工程。

---

## 软件需求

+ **配置和代码生成工具**
  + **MCAL**: Yuntu Config Tool(YCT) v2.7.0 或更高版本
+ **编译器工具链**
  + **GCC**: GNU GCC v10.3 或更高版本
  + **Keil/MDK**: ARM Keil/MDK v5.36 或更高版本(编译器推荐使用`armclang v6.18.2`)
  + **IAR**: IAR v9.50 或更高版本
  + **VS Code**: Microsoft Visual Studio Code IDE v1.76 或更高版本（需要 C/C++ 支持，GNU 工具链，CMake v3.25，ninja，Cortex-Debug 扩展安装）
+ **Debugger driver**
    + **J-Link**: SEGGER J-Link v7.82 或更高版本，需要安装 YUNTU `YTM32B1MD1` 补丁（支持包）。
    + **Ozone Debugger tool**: SEGGER Ozone v3.28 或更高版本。

    ***注意***: 需要安装 **YTM32B1MD1** 补丁，补丁可通过 **YCT** 工具或联系 ***云途 销售/FAE 团队***获取.

---