当前文档版本为 NDK-v0.7.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

Timer Capture

1 功能概述

本例程演示如何使用 TIMER HAL Driver 实现 Timer 的定时捕获功能,外部输入PWM波形,timer可以捕获PWM的高电平和低电平的时间。

2 环境准备

  • 硬件设备与线材:

    • PAN107 EVB 核心板底板各一块

    • JLink 仿真器(用于烧录例程程序)

    • USB-TypeC 线一条(用于底板供电和查看串口打印 Log)

    • 杜邦线数根或跳线帽数个(用于连接各个硬件设备)

  • 硬件接线:

    • 将 EVB 核心板插到底板上

    • 使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板 USB->UART 插口相连

    • 使用杜邦线将 EVB 底板上的 TX 引脚接至核心板 P16,RX 引脚接至核心板 P17

    • 使用杜邦线将 EVB 底板上的P15接至P22

    • 使用杜邦线将 JLink 仿真器的:

      • SWD_CLK 引脚与 EVB 底板的 P00 排针相连

      • SWD_DAT 引脚与 EVB 底板的 P01 排针相连

      • SWD_GND 引脚与 EVB 底板的 GND 排针相连

  • PC 软件:

    • 串口调试助手(Panchip Serial Assistant ),波特率 921600(用于接收串口打印 Log)

3 编译和烧录

例程位置:<PAN10XX-NDK>\01_SDK\nimble\samples\peripheral\timer_basic\keil_107x

双击 Keil Project 文件打开工程进行编译烧录。

4 例程演示说明

  1. 烧录完成后,芯片会通过串口打印初始化 Log:

    Try to load HW calibration data.. DONE.
    - Chip Info         : 0x1
    - Chip CP Version   : 255
    - Chip FT Version   : 4
    - Chip MAC Address  : D0000000059D
    - Chip UID          : 9D0500C2F737560338
    - Chip Flash UID    : 425031563233391700C2F73756033878
    - Chip Flash Size   : 512 KB
    app started
    APP version: 129.96.18288
    
  2. P22输出PWM波形,频率时20hz,占空比时30%,代码如下所示:

    HAL_PWM_PinConfiguration(P2, 2, PWM_CH0);
    
    PWM_InitOpt pwm_init_obj  = {
        .frequency = 20,
        .dutyCycle = 30,
        .operateType = OPERATION_EDGE_ALIGNED,
        .lowPowerEn = DISABLE,
    };
    
  3. timer0捕获到的低电平时间和高电平时间打印如下所示:

    low level 34761us
    high level 14998us
    low level 34999us
    high level 14998us
    low level 34999us
    high level 14998us
    low level 34999us
    high level 14998us
    low level 34999us
    high level 14998us
    low level 34999us
    high level 14998us
    low level 34999us
    high level 14998us
    

高电平时间时是34999us,低电平时间是14998us,这个和PWM输出的波形基本一样。

5 RAM/Flash资源使用情况

PAN107x:

Flash Size:  13.86k
RAM Size:  7.00 k