打印
[工具下载]

如何使用timer中capture設定在pulse的Rising edge或是Failing edg

[复制链接]
1367|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2021-4-6 11:29 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
如何使用"CRL0" & "CFL0"這兩個register讀取出的timer counter數值, 判斷是否為"start", logic "0" or logic "1"
是否是從"CFL0"每次讀取數值間的差值去做判斷???
但是目前程式run出來的數值,感覺跟紅外線的protocal的時間間隔對不太起來
以下是由紅外線遙控器按Button ”1”所得到的訊息 :
L=0us
PWM Capture start
H=22966us
L=2118us
H=65356us
L=63848us
H=44034us
L=39550us
是否是從每個Falling edge擷取到的counter值去做判斷 ???

Clock source : 32 MHz
if ((u32CapIntFlag & PWM_RISING_LATCH_INT_FLAG) && token == 0) {
        cap_rising_time = PWM_GET_CAPTURE_RISING_DATA(PWM0, 2);
                          printf("L=%dus\n", cap_rising_time);
        cap_index++;
                        //  printf("Lindex=%d\n", cap_index);
        token = 1;
    }

    if ((u32CapIntFlag & PWM_FALLING_LATCH_INT_FLAG) && token == 1) {
        cap_falling_time = PWM_GET_CAPTURE_FALLING_DATA(PWM0, 2);
                          printf("H=%dus\n", cap_falling_time);
        cap_index++;
                         // printf("Hindex=%d\n", cap_index);
        token = 0;
    }

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

427

主题

2681

帖子

3

粉丝