k210运行卡死

Viewed 189
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呢?

一样是卡死

1 Answers

halo,有其他问题请再@我。