完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试了解 RTOS SDK ESP8266的所有计时器。当我使用 PWM 库时,它导致我的 esp-homekit 客户端断开连接。调试日志中没有任何内容,他们只是断开了连接。也许是安全连接的问题,也许是 Wi-Fi 的问题(尽管 ESP 保持与 AP 的连接)。人们成功地将PWM与FRC1和esp-homekit一起使用,因此此WDEV TSF0中断一定是导致问题的原因。
做一些研究,我发现;FreeRTOS System tick 使用 CCOUNT 和 CCOMPARE0(TIMER0) 计时器。在 freertos/port/esp8266/os_cpu_a.S 中初始化FreeRTOS 计时器 (xTimerCreate) 使用此系统滴答声(默认为 10 毫秒滴答声;100Hz)FRC1 可通过 hw_timer 库提供给用户PWM 使用 WDEV TSF0 中断 (??)。在 startup.c 中初始化 user_init_entry() ESP32 在 4.1 之前使用 FRC2 作为其高分辨率硬件定时器库 esp-timer。这允许创建比系统滴答时间更短的计时器。 看看ESP8266 RTOS SDK,esp-timer 库似乎只是 FreeRTOS Timeer 的包装器;所以它没有使用 FRC2。 So;这个 WDEV TSF0 中断是什么?它会影响 Wi-Fi 或安全连接吗?它的文档在哪里?FRC2 在 RTOS SDK ESP8266用途是什么?它在 esp-open-rtos 和 esp-idf sdk 中公开,但在 ESP8266 RTOS SDK 中没有任何内容公开。 |
|
相关推荐
1个回答
|
|
要解决这个问题,我们可以尝试以下几个步骤:
1. **检查PWM库的实现**:首先,确保你使用的PWM库是为ESP8266兼容的。有些库可能与其他硬件或软件库存在冲突。 2. **降低PWM频率**:尝试降低PWM信号的频率,以减少对Wi-Fi连接的影响。这可以通过调整PWM库中的参数来实现。 3. **使用其他定时器**:如果问题仍然存在,可以尝试使用其他定时器(如TIMER1或TIMER2)来生成PWM信号,而不是使用与FreeRTOS系统滴答冲突的TIMER0。 4. **调整FreeRTOS配置**:在FreeRTOS配置文件(如FreeRTOSConfig.h)中,尝试调整系统滴答率(configTICK_RATE_HZ)以减少与PWM信号的冲突。 5. **使用中断处理**:如果可能的话,尝试使用中断来处理PWM信号的生成,而不是依赖于定时器。这可以减少对系统资源的占用,从而降低与Wi-Fi连接的冲突。 6. **优化代码**:检查你的代码,确保没有其他可能导致Wi-Fi连接中断的问题。例如,确保没有长时间的循环或阻塞操作。 7. **更新固件和库**:确保你的ESP8266固件和使用的库都是最新版本,以获得最佳的兼容性和性能。 |
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
437浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:53 , Processed in 0.872314 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号