ESP32 micropython 底层C语言开发,需求帮助

莫古子 2020-07-10 04:04:59
简单来说就是底层C语言GPIO拉高拉低,但是精度要求苛刻,脉冲宽度为0.5us。卡住啦 做一半卡住啦
...全文
9692 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2020-07-14
  • 打赏
  • 举报
回复
应该完成不了,进入中断函数前后,还有隐含的保护现场的压栈和弹栈操作,应该远远不止4条指令
莫古子 2020-07-14
  • 打赏
  • 举报
回复
引用 4 楼 worldy 的回复:
timer01_isr 里的处理时间必须小于定时时间间隔, 你的时间间隔只有0.5us,
static int a = 0; STATIC void IRAM_ATTR timer00_isr() { a += 1; if(a % 2 ==0) { GPIO.out_w1ts = (1 << TEST); //拉高电平 }else{ GPIO.out_w1tc = (1 << TEST); //拉低电平 } 0.5us时间间隔我觉得应该能完成这些事情了吧
worldy 2020-07-14
  • 打赏
  • 举报
回复
timer01_isr 里的处理时间必须小于定时时间间隔, 你的时间间隔只有0.5us,
莫古子 2020-07-13
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
使用硬件定时器
timer_config_t config; config.divider = 4; //分频值,默认时钟是80mhz config.counter_dir = TIMER_COUNT_UP; config.counter_en = TIMER_PAUSE; config.alarm_en = TIMER_ALARM_EN; config.intr_type = TIMER_INTR_LEVEL; config.auto_reload = 1; //使能自动装载 timer_init(TIMER_GROUP_0, TIMER_0, &config); timer_set_counter_value(TIMER_GROUP_0, TIMER_0, 0x00000000ULL); timer_set_alarm_value(TIMER_GROUP_0, TIMER_0, 5); timer_enable_intr(TIMER_GROUP_0, TIMER_0); timer_isr_register(TIMER_GROUP_0, TIMER_0, timer01_isr, NULL, ESP_INTR_FLAG_IRAM, NULL); timer_start(TIMER_GROUP_0, TIMER_0); 请问这个就是硬件定时器了吧 这个我所能达到的极限是3.4us,这是为什么呢。 到达极限之后,分频与timer_set_alarm_value()在修改已经不起作用了。
worldy 2020-07-12
  • 打赏
  • 举报
回复
使用硬件定时器
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧