1.9. RDEC SOFT

rdec_soft使用gptimer软件方式捕获脉冲,支持phase_2、phase_1两种模式。

1.9.1. rdec_soft_init

rdec功能资源初始化。

原型:

u32 rdec_soft_init(struct rdec_soft_config *cfg);

参数:

1.9.2. rdec_soft_deinit

rdec功能资源释放。

原型:

u32 rdec_soft_deinit(u32 id);

参数:

id

init时返回的id

返回值

1.9.3. rdec_soft_start

rdec功能启动。

原型:

void rdec_soft_start(u32 id);

参数:

id

init时返回的id

返回值

1.9.4. rdec_soft_pause

rdec功能暂停。

原型:

void rdec_soft_pause(u32 id);

参数:

id

init时返回的id

返回值

1.9.5. rdec_soft_resume

rdec功能恢复。

原型:

void rdec_soft_resume(u32 id);

参数:

id

init时返回的id

返回值

1.9.6. rdec_soft_get_value

获取rdec计数值,有符号。

原型:

int rdec_soft_get_value(u32 id);

参数:

id

init时返回的id

返回值

计数值

1.9.7. phase_1模式demo

    void rdec_soft_demo()
{
    printf("rdec_soft_demo()\n");
        const struct rdec_soft_config rdec_config = {
        .rdec_a = IO_PORTA_02,
        .rdec_b = IO_PORTA_01,
        .filter_us = 1000,
        .mode = RDEC_PHASE_2,
        .tid = TIMER2,
    };
    u32 rdec_id = rdec_soft_init(&rdec_config);
    rdec_soft_start(rdec_id);

    while (1) {
        int value = rdec_soft_get_value(rdec_id);
        if (value != 0) {
            printf("( %d )", value);
        }
        mdelay(100);
        wdt_clear();
    }
}