1. 概述

TG6210A芯片内置 2 组 32-bit 计数器,每个计数器可独立控制配置其参数与时钟频率。

2. API参考

2.1 Timer初始化

  • 函数原型:
    int hosal_timer_init(hosal_timer_dev_t *tim);
  • 功能描述:初始化timer
  • 函数参数:
    • tim:需要初始化的timer句柄 ```c typedef struct { uint32_t period; /< timer period, us */ uint8_t reload_mode; /< auto reload or not / hosal_timer_cb_t cb; /**< timer handle when expired / void arg; /**< timer handle args / } hosal_timer_config_t;
  1. ```c
  2. typedef struct {
  3. int8_t port; /**< timer port */
  4. hosal_timer_config_t config; /**< timer config */
  5. void *priv; /**< priv data */
  6. } hosal_timer_dev_t;
  • 返回值:

    • 成功返回0。
    • 错误返回-1。

      2.2 开始计时

  • 函数原型:
    int hosal_timer_start(hosal_timer_dev_t *tim);

  • 功能描述:开始计时。
  • 函数参数:
    • tim:timer的句柄
  • 返回值:

    • 成功返回0。
    • 错误返回-1。

      2.3 停止计时

  • 函数原型:
    void hosal_timer_stop(hosal_timer_dev_t *tim);

  • 功能描述:停止计时。
  • 函数参数:
    • tim:timer句柄
  • 返回值:

    • 成功返回0。
    • 错误返回-1。

      2.4 反初始化Timer

  • 函数原型:
    int hosal_timer_finalize(hosal_timer_dev_t *tim);

  • 功能描述:反初始化timer
  • 函数参数:
    • tim:timer的句柄
  • 返回值:

    • 成功返回0。
    • 错误返回-1。

      3. Demo示例

      1. hosal_timer_dev_t timer;
      2. timer.port = 0;
      3. timer.config.period = 1000; /* 1ms */
      4. timer.config.reload_mode = TIMER_RELOAD_PERIODIC;
      5. timer.config.cb =timer_callback;
      6. timer.config.arg = NULL;
      7. bl_gpio_enable_output(3, 1, 0);
      8. hosal_timer_init(&timer);
      9. hosal_timer_start(&timer);
  • 通过 hosal_timer_dev_t 定义一个timer设备,并设置port,period,reload_mode等参数,然后开始timer。