ercircle
发表于 2025-9-3 15:52:47
水水水木木木 发表于 2025-9-3 14:44
找到问题点了。
1.MDU16操作必须是无符号整数。
2.必须是16位乘法。
当然优先使用32位
做了个简单测试参考:
//1us @8bit@32.768
half_cmd = ((uint16_t)a* (uint16_t)b) >> 15;
//8.25us @8bit@32.768
half_cmd = ((uint32_t)SWING_HW * (uint32_t)M_q15) >> 15;
//70ns @32bit@32.768
half_cmd = ((uint16_t)SWING_HW * (uint16_t)M_q15) >> 15;
//70ns @32bit@32.768
half_cmd = ((uint32_t)SWING_HW * (uint32_t)M_q15) >> 15;
神农鼎
发表于 2025-9-3 16:28:03
STC8H8K64U 可以直接换成管脚兼容的
STC32G12K128, 32位8051,支持16位的运算指令是完整的
神农鼎
发表于 2025-9-3 16:31:12
STC8H8K64U 可以直接换成管脚兼容的
STC32G12K128, 32位8051,支持16位的运算指令是完整的
水水水木木木
发表于 2025-9-3 17:41:16
ercircle 发表于 2025-9-3 15:52
当然优先使用32位
做了个简单测试参考:
好的。非常感谢!那看来文档介绍AI8051比传统的8051单片机强70倍是指32位。读写数据和指令带宽确实成倍的提升。从您测试来看这个性能是杠杠的。那我换AI8051U做吧。
AI8051U支持的时钟频率最大能到多少?像STC8H8K64U这种单片机文档中,在时钟章节中明确提出IRC时钟不能高于40MHz,因为FLASH不支持,一般建议为35MHz以下。而AI8051U的IRC时钟章节中删除了这段话,这是不是代表AI8051U支持40MHz以上的频率?只要ISP软件支持的频率,例如44.2368MHz都是支持的,且稳定运行?
水水水木木木
发表于 2025-9-3 17:41:45
神农鼎 发表于 2025-9-3 16:31
STC8H8K64U 可以直接换成管脚兼容的
STC32G12K128, 32位8051,支持16位的运算指令是完整的 ...
好。谢谢。我换个AI8051U试试。
ercircle
发表于 2025-9-3 17:45:54
水水水木木木 发表于 2025-9-3 17:41
好的。非常感谢!那看来文档介绍AI8051比传统的8051单片机强70倍是指32位。读写数据和指令带宽确实成倍的 ...
这个型号建议跑40M
水水水木木木
发表于 2025-9-4 09:54:39
ercircle 发表于 2025-9-3 17:45
这个型号建议跑40M
好的。谢谢。那我就跑整数40M吧。
水水水木木木
发表于 2025-9-8 10:24:44
ercircle 发表于 2025-9-3 17:45
这个型号建议跑40M
再次请教下。AI8051U用32bit模式,变量类型和传统的8bit模式一样吗?char是1字节,int是2字节,long是4字节。float是4字节,double是8字节?longlong是8字节?因为STM32这种32位的单片机和8051单片机字节类型是不一样的。最大的区别是int类型。传统的8051单片机int是2字节,而STM32是4字节。