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();
}
}