共2条
1/1 1 跳转至页
cos 三求教如何用查表法做cos的计算
问
本人做电力系统的,经常用到cos计算,但对查表离线计算并不太懂,那位高人,能否为在下做一个小程序,为在下解释一下.定当铭刻肺腑.(51或196均可汇编语言)各路神仙一定要给小弟把把脉,说的清楚些.
答 1: 首先 计算好COS的值简单 首先 计算好COS的值 一查表 就可以拉 答 2: 感谢123456789提供意见 首先感谢楼上的提的意见,但每个cos的值都要计算吗?还有具体计算和操作怎么弄,能否给说的清楚点,谢谢 答 3: cosx曲线表 mov a,Data ;data=角度
mov dptr,#cosx
movc a,@a+Dptr ;a=cosx角度
放大0ffh倍了,消除小数,得到的值/0ffh
;===cosx曲线表*256
; 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9
cosx: db 255,255,255,255,255,255,254,254,254,253
; 10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19
db 252,251,250,249,248,247,246,245,243,242
; 20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29
db 241,239,237,236,234,232,230,228,226,224
; 30 ,31 ,32 ,33 ,34 ,35 ,36 ,37 ,38 ,39
db 222,219,217,215,212,210,207,204,202,199
; 40 ,41 ,42 ,43 ,44 ,45 ,46 ,47 ,48 ,49
db 196,193,190,187,184,181,178,175,171,167
; 50 ,51 ,52 ,53 ,54 ,55 ,56 ,57 ,58 ,59
db 165,161,158,154,150,147,143,139,136,132
; 60, 61 ,62 ,63 ,64 .65 .66 ,67 ,68 ,69
db 128,124,120,116,112,108,104,100,096,092
; 70 ,71 ,72 ,73 ,74 ,75 ,76 ,77 ,78 ,79
db 88 ,83 ,79 ,75 ,71 ,66 ,62 ,58 ,53 ,49
; 80 ,81 ,82 ,83 ,84 ,85 ,86 ,87 ,88 ,89 ,90
db 44 ,40 ,36 ,31 ,27 ,22 ,17 ,13 ,10 ,4 ,00 答 4: 感谢sheepbaa无以言表 感谢sheepbaa,提供小弟这么详细的程序,小弟想问问这在实际运行中,是否调试过?? 答 5: 是酱紫的. 答 6: 如果想偷懒,自动生成表格。但耗XRAM#define PI 3.1415927
float xdata costable[1024];
void init_costable()
{
unsigned int ;
for(i=0;i<1024;i++)
{
costable[i]=(float)i*PI/180;
}
}
开机运行这个程序,约耗时2秒。以后只要对costable查表即可 答 7: 马上就用了>4k 的ram,和 >2k 的flash了还是先计算好,放在flash比较好,只要4K flash(float精度) 答 8: 感谢楼上几位鼎立支持 能否再提供一些好的意见,和简单程序说明,小弟谢谢了呀 . 答 9: 我也困惑我也有相同的困惑,cos实在是非常常用的 答 10: 要表的话,要表的话,用EXCEL做一个,要什么精度都可以,存起来再加到程序里就可以了。
答 1: 首先 计算好COS的值简单 首先 计算好COS的值 一查表 就可以拉 答 2: 感谢123456789提供意见 首先感谢楼上的提的意见,但每个cos的值都要计算吗?还有具体计算和操作怎么弄,能否给说的清楚点,谢谢 答 3: cosx曲线表 mov a,Data ;data=角度
mov dptr,#cosx
movc a,@a+Dptr ;a=cosx角度
放大0ffh倍了,消除小数,得到的值/0ffh
;===cosx曲线表*256
; 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9
cosx: db 255,255,255,255,255,255,254,254,254,253
; 10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19
db 252,251,250,249,248,247,246,245,243,242
; 20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29
db 241,239,237,236,234,232,230,228,226,224
; 30 ,31 ,32 ,33 ,34 ,35 ,36 ,37 ,38 ,39
db 222,219,217,215,212,210,207,204,202,199
; 40 ,41 ,42 ,43 ,44 ,45 ,46 ,47 ,48 ,49
db 196,193,190,187,184,181,178,175,171,167
; 50 ,51 ,52 ,53 ,54 ,55 ,56 ,57 ,58 ,59
db 165,161,158,154,150,147,143,139,136,132
; 60, 61 ,62 ,63 ,64 .65 .66 ,67 ,68 ,69
db 128,124,120,116,112,108,104,100,096,092
; 70 ,71 ,72 ,73 ,74 ,75 ,76 ,77 ,78 ,79
db 88 ,83 ,79 ,75 ,71 ,66 ,62 ,58 ,53 ,49
; 80 ,81 ,82 ,83 ,84 ,85 ,86 ,87 ,88 ,89 ,90
db 44 ,40 ,36 ,31 ,27 ,22 ,17 ,13 ,10 ,4 ,00 答 4: 感谢sheepbaa无以言表 感谢sheepbaa,提供小弟这么详细的程序,小弟想问问这在实际运行中,是否调试过?? 答 5: 是酱紫的. 答 6: 如果想偷懒,自动生成表格。但耗XRAM#define PI 3.1415927
float xdata costable[1024];
void init_costable()
{
unsigned int ;
for(i=0;i<1024;i++)
{
costable[i]=(float)i*PI/180;
}
}
开机运行这个程序,约耗时2秒。以后只要对costable查表即可 答 7: 马上就用了>4k 的ram,和 >2k 的flash了还是先计算好,放在flash比较好,只要4K flash(float精度) 答 8: 感谢楼上几位鼎立支持 能否再提供一些好的意见,和简单程序说明,小弟谢谢了呀 . 答 9: 我也困惑我也有相同的困惑,cos实在是非常常用的 答 10: 要表的话,要表的话,用EXCEL做一个,要什么精度都可以,存起来再加到程序里就可以了。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |