Thread 中讨论的其他器件:Z-stack
工具与软件:
早上好、
在过去几个月中、我使用 zc_thermoster_sink (SDK 4.40)定制 版本从绿色电源传感器接收温度数据。
但是、该设备除了用于接收射频数据之外还用于执行其他任务。
最耗时的是从3个 ADC 通道@4kHz 进行采集。
设计如下:
- 由与计时器相关的 HWI 触发的 ISR 启动通道0的 ADC 转换;
- EOC ISR 会复制该值并触发通道1的转换。
- EOC ISR 会复制该值并触发通道2的转换。
使用上一版本(射频协议 IEEE 802.15.4和 SDK 3.40)时、所有操作均以低抖动完成。
实际上、有时计时器会在第3个通道的采集完成之前触发一个新的 HWI。
通过在 RAM 中插入一些可写入循环缓冲器的跟踪指令来分析这个问题、我已经看到 OSAL 禁用所有中断、从而将定时器 ISR/EOC ISR 的执行延迟几个 CPU 周期(即使是3700、即@Δ-Σ 48MHz 约为77µs。)。
如何解决这种情况?
非常感谢、