RaspberryPico解析PPM

PPM理论基础看这篇文章:

t.zoukankan.com/qiyuexin-p-7071420.html

其实主要是这张图

在这里插入图片描述

具体代码如下


from machine import Pin, PWM
import utime

rc = Pin(0, Pin.IN)

#板载LED灯
led = PWM(Pin(25))
led.freq(200)

#等待下一个帧头
while True:
    #等待低电平结束
    while rc.value() == 0:
        print(rc.value())
        pass
    tL=utime.ticks_us()

    #等待高电平结束
    while rc.value() == 1:
        print(rc.value())
        pass
    tH=utime.ticks_us()
    
    #高电平持续超过4ms时认为此阶段为帧尾
    if tH-tL>4000:
        break
    
print("NEW")

channel=0

def onChannel_0(t):
    print("0=",t)

def onChannel_1(t):
    a=0

def onChannel_2(t):
    a=0 
    
def onChannel_3(t):
    a=0
    
def onChannel_4(t):
    a=0
    
def onChannel_5(t):
    a=0
    
def onChannel_6(t):
    a=0
    
def onChannel_7(t):
    a=0

def onChannel_8(t):
    a=0

def onChannel_9(t):
    a=0

#新帧头开始了
while True:
    #等待低电平结束
    while rc.value() == 0:
        pass
    t1=utime.ticks_us()

    #等待高电平结束
    while rc.value() == 1:
        pass
    t2=utime.ticks_us()
        
    t=t2-t1
    
    if t>4000:
        channel=0
#         print("----------")
        continue
    
    if channel==0:
        onChannel_0(t)
    elif channel==1:
        onChannel_1(t)
    elif channel==2:
        onChannel_2(t)        
    elif channel==3:
        onChannel_3(t)        
    elif channel==4:
        onChannel_4(t)        
    elif channel==5:
        onChannel_5(t)       
    elif channel==6:
        onChannel_6(t)      
    elif channel==7:
        onChannel_7(t)      
    elif channel==8:
        onChannel_8(t)      
    elif channel==9:
        onChannel_9(t)
        
    channel+=1
        
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值