yuyong308 发表于 2024-4-18 13:02:52

{:4_250:}{:4_250:}{:4_250:}

LAOXU 发表于 2024-4-19 14:21:09

本帖最后由 LAOXU 于 2024-4-19 14:23 编辑

求证:

DPU32 控制寄存器 :
注:向 DMAIR 寄存器写入指令码,只能使用立即数寻址方式的指令“MOV DMAIR,#N”,使用其它
指令会无法正常触发计算。

MDU32C 控制寄存器 :
注:向 MDU32CR 寄存器写入指令码,未注明"只能使用立即数寻址方式", 是否意味着
使用其它指令“MOVMDU32CR,A”, 也会正常触发计算 ???

神农鼎 发表于 2024-4-19 14:46:08

使用其它指令“MOVMDU32CR,A”,也会正常触发计算

MDU32CR寄存器,使用任何指令触发都可以

不限立即数触发,使用
MOV MDU32CR, #imm /
MOV MDU32CR, A /
MOV MDU32CR, Rn
指令都可以

LAOXU 发表于 2024-4-19 18:05:13

神农鼎 发表于 2024-4-19 14:46
使用其它指令“MOVMDU32CR,A”,也会正常触发计算

谢谢!

这样可以通过 MOVMDU32CR,A , 触发 +/- 计算

LAOXU 发表于 2024-4-20 03:22:48

神农鼎 发表于 2024-4-19 14:46
使用其它指令“MOVMDU32CR,A”,也会正常触发计算

MDU32CR寄存器,使用任何指令触发都可以

原以为受技术限制, DMAIR 寄存器写入指令码,只能使用立即数寻址方式的指令“MOV DMAIR,#N”,

现在看来不存在这个问题.

那就有一个问题值得思考.
MDU32C, 状态寄存器 和 控制寄存器, 地址的连续性问题.
注: 在 纯 51 环境下, 因只能执行写 8位数据, 不存在这个问题(地址是否连续性).
但在 C251 环境下, 因能执行写 16位数据, 地址是否连续性 ,决定了是否能用一条指令写16位数据,
完全代替原先只能用2条指令写8位数据(非原子操作带来的函数不可重入问题,
在软件上, 一般用短暂关中断解决, 但需额外增加多条指令).
如把 MDU32C, 状态寄存器 和 控制寄存器, 地址连在一起(注意偶地址在先),
则以一条16位数据写指令(原子操作), 装载和触发 状态寄存器 和 控制寄存器,
此时的函数是可重入的, 在软件上, 不用关中断, 不会额外增加多条指令.

Mr_LG 发表于 2024-4-27 10:34:36

硬件CRC16,数据写入“CRC数据输入寄存器”就自动开始计算?没有开关位之类的?

神农鼎 发表于 2024-4-30 16:52:48













神农鼎 发表于 2024-5-2 10:09:27

STC8H2K32U-45I-LQFP32, 已上架微信小商城销售, 刚发现









https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4553&extra=


lyagp03 发表于 2024-5-3 10:08:03

好,牛逼。学习了

jackfangxq 发表于 2024-5-14 19:46:01


强烈支持
STC越来越强大
页: 1 2 [3] 4
查看完整版本: 8H2K32U-45MHz,144MHz-PWM-硬件移相,MDU32C,CRC16,串口超时中断,硬件奇偶