from board import board_info
from fpioa_manager import fm
from maix import GPIO
import sensor, image, time, lcd
from maix import KPU
from machine import UART,Timer
import gc,os
import utime
fm.register(12, fm.fpioa.GPIOHS0)
fm.register(13, fm.fpioa.GPIOHS1)
Trig = GPIO(GPIO.GPIOHS0, mode=GPIO.OUT, pull=GPIO.PULL_NONE, value=0)
Echo = GPIO(GPIO.GPIOHS1, mode=GPIO.IN, pull=GPIO.PULL_NONE)
all_time=0
flag=0
def timer_timeout_cb(timer):
global all_time
all_time+=1
timer0 = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PERIODIC,
period=1, unit=Timer.UNIT_US, callback=timer_timeout_cb, start=False, priority=1, div=0)
def Trig_irq_handler(echo):
global all_time
global timer0
global flag
if echo.value()==1:
all_time=0
elif echo.value()==0:
flag=1
Echo.irq(Trig_irq_handler, GPIO.IRQ_BOTH, GPIO.WAKEUP_NOT_SUPPORT, 1)
timer0.start()
print("start")
while True:
if flag==1:
print(all_time)
flag=0
我想实现测量高电平的时间
用外中断和一个定时器来实现,定时器每1us给变量加一,当上升沿时给变量清零,下降沿就读出数据,但是每次运行都卡死,能帮我看看哪里出问题了吗
刚才测试改成1ms进入一次中断就能正餐运行,不知道是不是频繁进入中断造成的,我本来想直接读取定时器的值的,但是没找到相关函数
你好,请问是连接ide进行的测试吗?如果脱离ide呢?
一样是卡死