zoukankan      html  css  js  c++  java
  • Arduino UNO ESP8266 ESP32 MicroBit IO操作速度对比记录

    ESP8266 Arduino C编程

    void setup(){
      pinMode(13, OUTPUT);
    }
    
    void loop(){
      digitalWrite(13,HIGH);
      digitalWrite(13,LOW);
      digitalWrite(13,HIGH);
      digitalWrite(13,LOW);
    
    }

    可以看到,相邻的两次digitalWrite之间是958ns(纳秒),而两次loop之间是6.6us(微秒),速度还是很快的,而Arduino UNO得到了如下结果:

    可以看到无论是loop内的,还是loop之间的间隔,都是接近的,都在3.25-3.7之间,速度比ESP8266慢几倍的水平(考虑到时序都是在loop内完成)

    下边是同样的代码ESP32得到的结果

    相比ESP8266,还是有很大进步的(综合估计得有10倍)

    下边是Micropython的:

    import machine
    
    pin13 = machine.Pin(13, machine.Pin.OUT)
    while True:
        pin13.value(1)
        pin13.value(0)
        pin13.value(1)
        pin13.value(0)

    先上ESP32的:

    嗯,Arduino水平。

    再看ESP8266:

    34us的水平。比Arduino慢一个数量级,但是ESP8266有个emit功能,现在测试一下:

    也就提高了1倍,并且不均匀,感觉像是GC占的时间。

    接下来是Microbit,Microbit支持python blockly(javasript)两种编程方式,现在分别测试:

    执行时间倒是可以的,5.37us,能差不多Arduino C语言的水平。但是loop之间就差太远了,达到了24ms,说明JavaScript系统太耗时了?

    upython得到的是一个差不多正常的方波,但是执行速度就有点太慢了,70多微秒,基本是没法模拟时序的,所以Microbit还是尽量用BLockly编程吧,虽然运行时

    需要的时间超长,但是执行速度还是可以的

  • 相关阅读:
    管理信息系统的开发与管理
    加载静态文件,父模板的继承和扩展(2017.11.3)
    开始Flask项目(2017.11.3)
    夜间模式的开启与关闭,父模板的制作(2017.11.2)
    完成登录与注册页面的前端(2017.10.31)
    JavaScript 基础,登录验证(2017.10.24)
    CSS实例:图片导航块(2017.10.20)
    导航,头部,CSS基础 (10.18)
    ASCII表
    RSA加密算法
  • 原文地址:https://www.cnblogs.com/yafengabc/p/11197001.html
Copyright © 2011-2022 走看看