我们在使用单片机编程时可能会遇到无法使用sin和cos函数的困扰,下面跟大家分享下用查表法写的sin、cos函数。sin函数原型需要进行浮点运算,因此有时候也可以采用查表法计算来提高程序的执行效率。
下面以采样点为256个为例,说明一下函数的具体实现。
#define TAB_N 256 //定义查表的点数
#define PI 3.1415926535897932384626433832795028841971 //定义圆周率值
float SIN_TAB[TAB_N/4+1]={ //初始化1/4的sin表(256点)
0.0000,0.0245,0.0491,0.0735,0.0980,0.1224,0.1467,0.1710,
0.1951,0.2191,0.2430,0.2667,0.2903,0.3137,0.3369,0.3599,
0.3827,0.4052,0.4276,0.4496,0.4714,0.4929,0.5141,0.5350,
0.5556,0.5758,0.5957,0.6152,0.6344,0.6532,0.6716,0.6895,
0.7071,0.7242,0.7410,0.7572,0.7730,0.7883,0.8032,0.8176,
0.8315,0.8449,0.8577,0.8701,0.8819,0.8932,0.9040,0.9142,
0.9239,0.9330,0.9415,0.9495,0.9569,0.9638,0.9700,0.9757,
0.9808,0.9853,0.9892,0.9925,0.9952,0.9973,0.9988,0.9997,
1.0000
};
/******************************************************************