Vše zůstalo stejné, jen jsem vyměnil mikrokontrolér za ESP32 a jal se měřit...
Měření
Opět jsem měřil jsem logickým analyzátorem Saleae a zjišťoval jsem dění na GPIO17 spouštěné sestupnou hranou signálu, taktéž na GPIO17.MCU & LUA
Pro test byl použit lehce letitý hardware WEMOS ESP32. Z lenosti jsem nechal připojeny moduly GPS NEO 6M a OLED z jednoho prototypu.Použit je Lua-RTOS-ESP32.
TEST 1 - PIN.PIO.SETHIGH(...)
Shodíme, nahodíme, shodíme, nahodíme a tak pořád dokola. K tomu nám slouží příkazy pio.pin.sethigh() a pio.pin.setlow(). Z obrázku vidíme, že se dostaneme na 16.25 µs, což je téměř 20x rychlejší než ESP8266.function Test1()
pio.pin.setdir(pio.OUTPUT, pio.GPIO17)
print("Test 1 start")
for i=1, 100 do
pio.pin.sethigh(pio.GPIO17)
pio.pin.setlow(pio.GPIO17)
end
print("end")
end
![]() |
| Šířka pulzu je 16.25 µs |
TEST 2 - PIN.PIO.INV(...)
Protože tato implementace nemá ekvivalent příkazu SEROUT, tak jsem zkusil alespoň cyklicky negovat stav portu. Čas je 16.69 µs, což je tak šulnul s TEST 1.function Test2()
pio.pin.setdir(pio.OUTPUT, pio.GPIO17)
print("Test 1 start")
for i=1, 100 do
pio.pin.inv(pio.GPIO17)
end
print("end")
end
![]() |
| Šířka pulzu je 16.69 µs |


Žádné komentáře:
Okomentovat