完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试通过 GPIO 中断计算脉冲数。
我的应用程序需要一个 esp8266 来计算最大频率为 1MHz 的信号脉冲(50% 占空比),但是,我能够获得高达 150-160KHz 的计数。我想知道这是否是我使用 esp8266 可以获得的最大值,或者我可以做些什么来改进和实现我的目标。 我正在使用 esp8266 模块“esp-wroom-02”,并尝试通过 PlatformIO 和 Arduino 进行编译和闪烁。 我还尝试将 CPU 时钟设置为 80MHz 和 160MHz,但没有成功。 我的代码是这样的 代码:全选#define clockPin 13 //tried using other gpio like 14, 2 etc. void setup() { Serial.begin(115200, SERIAL_8N1); //tried using lower baud rates as well delay(100); Serial.println("Start"); attachInterrupt(clockPin, Clock_Interrupt_Handler, RISING);//tries using falling, low, high, but not change since it will double the count } uint32_t varTemp = 0; void loop() { Serial.println(varTemp); varTemp = 0; delay(100); //tried using less and more delay, yield();//tried without using it } void ICACHE_RAM_ATTR Clock_Interrupt_Handler() { //important to use few instruction cycles here varTemp++; } 如果我将信号发生器保持在大于 160KHz 的频率,控制器会忙于中断,几秒钟后,它会重置 (wdt)。为了避免我定期打开/关闭信号,这样它就不会被重置。 但即使我的信号频率大于 160KHz(比如 500KHz 或 1MHz),我的计数值仍然表示(在恢复计算之后)频率为 150-160KHz。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
544浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
435浏览 5评论
441浏览 4评论
410浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 14:25 , Processed in 0.725339 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号