ZHCAFV6 October 2025 CC2340R5
图 4-1 展示了 CC2340R5 代码内部所用过程的代码方框图。Zigbee 功能可从 window_covering.c 获取,而电机运行在 bdc_motor.c 文件中实现。
图 4-1 BDC 电机代码图主函数初始化 BDC 电机示例运行所需的所有 TI 驱动器和计时器。进入主 while 环路后,这会对由硬件回调设置的事件执行进一步的操作。对于提供的应用,通过按下 LaunchPad 上的按钮来触发这些硬件回调。通过子例程维护相应的操作后,会重置事件并且会自动重复该过程。
除一些例外情况外,所有硬件回调都只是发布一个事件以供主应用处理。一种例外情况是 ADCBuf 回调,它会立即处理状态并且不会从主应用程序环路调用任何进一步的操作。
实现了若干定义,用于定义电机的行为,这些定义在以下各节中会被引用。这些可配置的定义在 bdc_motor.c 中提供。
| 定义 | 默认值 | 单位 | 功能 |
|---|---|---|---|
| PWM_PERIOD | 100 | µs | 一个 PWM 周期的持续时间 |
| PWM_DUTY_INC | 100 | µs | 在加速期间递增 PWM 占空比或在减速期间递减 PWM 占空比的持续时间 |
| PWM_START_POINT | 0 | µs | 加速起始/减速结束的 PWM 占空比值。通常设置为零 |
| PWM_END_POINT | 100 | µs | 加速结束/减速起始的 PWM 占空比值。在这种情况下,设置为与 100%占空比下 PWM_PERIOD 相同的值 |
| ADCBUF_SAMPLE_SIZE | 100 | 整数 | DMA 传输的 ADC 缓冲区大小 |
| ADCBUF_SAMPLING_FREQ | 1000 | Hz | ADC 的采样频率。请注意,已完成的 ADC 缓冲区频率等于 ADCBUF_SAMPLING_FREQ/ADCBUF_SAMPLE_SIZE |
| USE_HALL | 已定义 | 不适用 | 确定在功能期间是否使用霍尔效应传感器 |
| STALL_TIMEOUT | 1000000 | µs | 定义 USE_HALL 后,令电机停止运行的超时时间,即霍尔效应传感器检测到电机未运行的这段时间 |
| MOVEMENT_TIME | 3000000 | µs | 未定义 USE_HALL 时,令电机停止运行的超时时间,如果电机转动时间超过此持续时间则电机停止运行 |
| OCP_THRESHOLD | 800000 | µV | 触发过流情况的平均 ADC 缓冲区的最小值 |