立即注册

扫一扫,访问微社区

micropython-microbit 中文社区

查看: 120|回复: 6

PYB Nano ADC 上手遇到的问题

  [复制链接]

该用户从未签到

发表于 2018-3-28 15:09:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 zzwqw 于 2018-3-28 15:25 编辑

新手购书学习中,照着书本上手很快, 在学习使用ADC时碰到个疑问,求高手解答,具体情况如下:设定PYB Nano 的“X5”为PWM模式,外接LED,“X7”脚为ADC外接可调电位器,通过调节电位器来控制LED的亮度,如下图:

pybnano

pybnano

代码如下:
  1. from pyb import Pin,Timer,ADC

  2. tm = Timer(4,freq=100)

  3. led = tm.channel(3,Timer.PWM,pin=Pin.cpu.B8)

  4. led_liangdu = led.pulse_width_percent

  5. adc =ADC(Pin.cpu.A7)

  6. while True:
  7.     shuzhi = round(100/4095*adc.read())
  8.     led_LD(shuzhi)
  9.     pyb.delay(100)
复制代码
以上代码工作正常,可是尝试把循环代码改写成用定时器控制时,却不能正常工作,代码只运行一次就退出了。代码如下:
  1. from pyb import Pin,Timer,ADC

  2. tm = Timer(4,freq=100)

  3. led = tm.channel(3,Timer.PWM,pin=Pin.cpu.B8)

  4. led_liangdu = led.pulse_width_percent

  5. adc =ADC(Pin.cpu.A7)

  6. def tiaoguang(t=0):
  7.     shuzhi = round(100/4095*adc.read())  #取整
  8.    
  9.     led_liangdu(shuzhi)
  10.     print(shuzhi)

  11. Timer(3,freq=100,callback=tiaoguang())
复制代码
下面是截图

adc

adc

如果调用定时器语句时的回调函数不加括号
  1. Timer(3,freq=100,callback=tiaoguang)
复制代码
则会提示错误

adc2

adc2


但是如果不做取整运算,就正常,调用回调函数也不用加括号。(为了方便截个图,高低了Timer.freq的值)

adc3

adc3

acd4

acd4

那位高手能解释下,取整运算为什么会产生错误,应该如何解决呢?

手机扫码浏览
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-3-31 23:28
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-3-28 17:11:56 | 显示全部楼层
    看起来是在定时器回调函数中不能用浮点数,改为整数计算就正常了。
    1. def tiaoguang(t=0):
    2.     shuzhi = adc.read()*100//4095  #取整
    3.    
    4.     led_liangdu(shuzhi)
    5.     print(shuzhi)
    复制代码


    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 7 天前 | 显示全部楼层
    shaoziyang 发表于 2018-3-28 17:11
    看起来是在定时器回调函数中不能用浮点数,改为整数计算就正常了。

    的确是这个问题,一切都正常了,学习了,非常感谢。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-3-31 23:28
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 7 天前 | 显示全部楼层
    zzwqw 发表于 2018-4-13 15:24
    的确是这个问题,一切都正常了,学习了,非常感谢。

    可能是因为在中断里不能分配内存,造成了这样的问题。
    回复 支持 反对

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|micropython-microbit 中文社区 ( 鄂ICP备17012469号 )

    GMT+8, 2018-4-20 15:00 , Processed in 0.114711 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表