5096|7

1297

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

【一起玩MicroPython】讨论下micropython的callback [复制链接]

 最近的测试,有个问题,比如sw,callback函数中如果只含有pyb相关的,比如LED toggle之类的,能够执行,但是如果换成含有自己类的方法,就会有报错的可能。比如以下代码是可以工作的
  1. def cb():
  2.         pyb.delay(10)
  3.         if sw()==True:
  4.                 pyb.LED(1).toggle()

  5. sw.callback(cb)
复制代码
但是如果在pyb.LED(1).toggle()后面加上一些自己的代码,然后在注册到sw的callback就会报错
  1. Uncaught exception in ExtInt interrupt handler line 0
  2. MemoryError:
复制代码
但是,如果不注册到callback,单独执行cb()函数没有任何问题啊。
有人问是不是增加的代码需要很长的执行时间,问题也不是。因为如果在后面加一句pyb.delay(1000),够长了吧,人家也不报错。。。。

最新回复

这个问题有后续么?我也遇上同样的问题了   详情 回复 发表于 2020-6-27 18:18
点赞 关注
 
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 
遇到过类似问题。有时复位一次就正常了。

点评

可是俺百试不得成功,已经晕了  详情 回复 发表于 2016-6-4 23:57
 
 
 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

板凳
 
dcexpert 发表于 2016-6-4 23:52
遇到过类似问题。有时复位一次就正常了。

可是俺百试不得成功,已经晕了

点评

发个完整的代码上来分析一下。  详情 回复 发表于 2016-6-5 00:37
 
 
 

回复

1万

帖子

25

TA的资源

版主

4
 
johnrey 发表于 2016-6-4 23:57
可是俺百试不得成功,已经晕了

发个完整的代码上来分析一下。
 
 
 

回复

553

帖子

3

TA的资源

纯净的硅(初级)

5
 
我每次调我自己的函数都不行,,
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

6
 
在开始的时候加上import micropython,micropython.alloc_emergency_exception_buf(100)这两句就可以解决了,具体可以参考http://docs.micropython.org/en/l ... ence/isr_rules.html
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(高级)

7
 
我用过这句紧急异常缓冲区。但是如果反复错误,会丢出Heap Freeze。不得不重启。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 

这个问题有后续么?我也遇上同样的问题了

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表