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編程吧,雖然運行時
需要的時間超長,但是執行速度還是可以的