25
977
3599
超级版主
#include "stc32g.h" #include "stdio.h" #include "math.h" #define FOSC 56000000UL #define BAUD (65536 - FOSC/4/115200) void ICacheOn() { bit fEA; if (WTST > 0) //WTST为0时不需要且不能使能ICACHE { fEA = EA; //保存EA EA = 0; //关闭中断 _nop_(); _nop_(); TA = 0xaa; //写入触发命令序列1 //此处不能有其他任何指令 TA = 0x55; //写入触发命令序列2 //此处不能有其他任何指令 ICHECR = 0x01; //写保护暂时关闭,可以修改ICHECR中的EN位 //EN位再次进入写保护状态 _nop_(); _nop_(); EA = fEA; //恢复EA } } void main(void) { unsigned long v; float f; bit b; int i; ICacheOn(); AUXR = 0x40; SCON = 0x52; TMOD = 0x00; TL1 = BAUD; TH1 = BAUD >> 8; TR1 = 1; printf("Test STC32F12K54 FPMU && MDU32 !\n"); //整数乘除运算 TL0 = 0x00; TH0 = 0x00; TR0 = 1; v = 1; for (i = 0; i < 10; i++) { v *= 2L; //?C?LIMUL v *= 1234562L; //?C?LMUL v /= 3; //?C?ULIDIV v /= 123453; //?C?ULDIV v = (long)v / 3; //?C?SLDIV } TR0 = 0; printf("MDU32 : %u\n", (TH0 << 8) | TL0); //浮点运算 TL0 = 0x00; TH0 = 0x00; TR0 = 1; for (i = 0; i < 10; i++) { f = 12341.234546; f += 345462.345678; //?C?FPADD f = 12341.234546; f -= 74463.345678; //?C?FPSUB f = 12341.234546; f *= 897654.3456788; //?C?FPMUL f = 12341.234546; f /= 9876565.232345; //?C?FPDIV f = 12341.234546; f = sqrt(f); //sqrt?_ f = 12341.234546; b = f > 1.0; //?C?FPCMP3 f = 12341.234546; f = -f; //?C?FPNEG f = 12341.234546; f = fabs(f); //fabs?_ } TR0 = 0; printf("FPMU : %u\n", (TH0 << 8) | TL0); //三角函数运算 TL0 = 0x00; TH0 = 0x00; TR0 = 1; for (i = 0; i < 10; i++) { f = 12341.234546; f = sin(f); //sin?_ f = 12341.234546; f = cos(f); //cos?_ f = 12341.234546; f = tan(f); //tan?_ f = 12341.234546; f = atan(f); //atan?_ } TR0 = 0; printf("SIN : %u\n", (TH0 << 8) | TL0); while(1); } 复制代码
STC32F12K54-FPMU测试.zip
2023-6-29 15:52 上传
点击文件名下载附件
46.86 KB, 下载次数: 112
使用道具 举报 送花
0
1
14
新手上路
6
92
938
高级会员
131
666
54
1327
5395
荣誉版主
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-5-2 03:59 , Processed in 0.188351 second(s), 84 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.