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字节。
页: 1 2 3 [4]
查看完整版本: 关于硬件乘除法的问题。