[技术相关] 华芯微特SWM341 系列MCU旋转坐标计算(CORDIC)功能

[复制链接]
 楼主| 中国龙芯CDX 发表于 2023-4-26 13:00 | 显示全部楼层 |阅读模式
1概述
SWM341 系列部分型号可能不包括该模块。
使用前需使能 CORDIC 模块时钟。
2特性
⚫ 经过 14 轮迭代得到结果
⚫ 计算 sin 和 cos 时,输入弧度范围建议在 0.01 ~1.56
⚫ 计算 arctan 数值范围建议在 0.05 ~ 10000
⚫ 输出结果支持查询和中断方式

3功能描述
使用 CORDIC 计算 COS/SIN/ARCTAN 流程如下:
⚫ 配置中断使能寄存器 IE
⚫ 配置参数寄存器 INPUT
⚫ 配置控制寄存器 CMD
⚫ 结果查询
如果采用查询方式,根据需要,反复查询 COS、SIN 或者 ARCTAN,当相应输出寄存器 DONE 位为 1 时,得到有效的返回值;如果采用中断方式,当中断来临,查询到 IF 寄存器 DONE 位状态为 1 时,根据需要,读 COS、SIN 或者 ARCTAN 寄存器即可。注意:计算得到的结果会一直保持,直到下一次启动 CMD. START。START 启动后,就可以开始配置下一次计算所需要的 INPUT 和 CMD,但 START 只有等到这次计算结束后才能再次启动。
中断配置与清除
可通过配置中断使能寄存器 IE 中相应位使能中断。当中断触发后,中断标志寄存器 IF 中对应位置 1。如需清除此标志,需在对应标志位中写 1 清零(R/W1C),否则中断在开启状态下会一直进入。
chenqianqian 发表于 2023-5-2 08:21 来自手机 | 显示全部楼层
这个相当于是硬件计算模块?
华芯微特FAE 发表于 2023-5-4 10:16 | 显示全部楼层
chenqianqian 发表于 2023-5-2 08:21
这个相当于是硬件计算模块?

你好!CORDIC是属于硬件模块!基础库中相应的例程可以参考应用!
tpgf 发表于 2023-5-17 15:34 | 显示全部楼层
CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder于1959年首次提出,主要用于三角函数、双曲线、指数、对数的计算
wakayi 发表于 2023-5-17 15:45 | 显示全部楼层
它通过移位和加减运算,能递归计算常用函数值,如Sin,Cos,Sinh,Cosh等函数
xiaoqizi 发表于 2023-5-17 15:58 | 显示全部楼层
看了一下这种算法还是比较复杂的 单片机可以承受这种复杂的算法吗
paotangsan 发表于 2023-5-17 16:53 | 显示全部楼层
我们常用的普通单片机可以直接做三角函数的计算吗
华芯微特FAE 发表于 2023-5-18 15:33 | 显示全部楼层
paotangsan 发表于 2023-5-17 16:53
我们常用的普通单片机可以直接做三角函数的计算吗

要看MCU内部的配置,比如211和341旋转坐标计算(CORDIC)算法,配置寄存器才能使用。
ufbycd 发表于 2023-5-23 10:07 | 显示全部楼层
cchyyy 发表于 2023-5-21 00:08
其实IQ 方法通过查表和一下算法优化就可以了啊。也不见的不这个CORDIC 慢。只是耗CPU时间而已。 ...

查表法的精度没有直接计算的高,硬件加速器不是摆设。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

334

主题

2504

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

334

主题

2504

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部