cxzjx-146657 发表于 2012-6-16 09:48:08

关于STM8数据对齐的左对齐右对齐问题

        请教大虾们:我在取10位ADC结果之前设置了右对齐数据方式,即ALIGIN=1  ,但是又用到模拟看门狗寄存器上下限阈值设定,它却是左对齐的格式。而我在RAM中定义一个16位的字之后,对其算术运算都是以右对齐的方式。现在的问题是模拟看门狗只能是左对齐的,所以我想统一全部用左对齐方式,请问如何把我在RAM中要定义的字也设为左对齐的方式进行算术运算?或者说是不是把ALIGIN位设为0,系统就全部认为数据是左对齐的了?或者有没有简洁的办法将一个左对齐的数据转换为右对齐?烦那,例如将一个8位的右对齐字改为左对齐的我都手工改,这对常量还好说,对变量来说就是个恶梦了。

cxzjx-146657 发表于 2012-6-16 10:09:33

RE:关于STM8数据对齐的左对齐右对齐问题

木有人注意到这个细节问题?

cxzjx-146657 发表于 2012-6-16 10:24:28

RE:关于STM8数据对齐的左对齐右对齐问题

举例一,我要用一个右对齐的自定义字和一个左对齐的ADC_HTR进行相加,结果存入x,要不要转换成统一对齐方式,还是默认自动按某个方式处理?
   举例二,我要装X的内容直接写入ADC_HTR,是如何操作的?

发表于 2012-6-16 10:31:39

RE:关于STM8数据对齐的左对齐右对齐问题

我的理解是,AD采集的时候,对于左对齐,是从左开始舒10位,而对于右对齐,是从右开始数10位。左对齐,就要把值友谊6位,为右对齐就不用移位了。不知道,我理解的对不对。

cxzjx-146657 发表于 2012-6-16 10:31:49

RE:关于STM8数据对齐的左对齐右对齐问题

我在想是不是用16位左移指令将右对齐格式的字先左移6位,再用8位右移指令将低8位右移6位,这样觉得有点雷人啊。虽然结果正确,但我很不情愿这么做。

发表于 2012-6-16 10:39:10

RE:关于STM8数据对齐的左对齐右对齐问题

默认都是右对齐的,对于左对齐的设置,你可以看看手册,有没有地方设置。好像只有AD用到这个对齐方式了吧。

liberv-312354 发表于 2012-6-16 10:42:38

RE:关于STM8数据对齐的左对齐右对齐问题

俺挣个分,顺便帮你顶一下。

cxzjx-146657 发表于 2012-6-16 10:43:20

回复:关于STM8数据对齐的左对齐右对齐问题

回复第 4 楼 于2012-06-16 10:31:39发表:
我的理解是,AD采集的时候,对于左对齐,是从左开始舒10位,而对于右对齐,是从右开始数10位。左对齐,就要把值友谊6位,为右对齐就不用移位了。不知道,我理解的对不对。 

10位左对齐的格式是:低两位仍然存放在R0R1位,你理解的是低两位跟着存放到R6R7了。所以还要将低两位移回到R0R1。整个转换过程需要2*6+4*6=36指令周期,这不是个好办法。

cxzjx-146657 发表于 2012-6-16 11:09:00

回复:关于STM8数据对齐的左对齐右对齐问题

回复第 6 楼 于2012-06-16 10:39:10发表:
默认都是右对齐的,对于左对齐的设置,你可以看看手册,有没有地方设置。好像只有AD用到这个对齐方式了吧。 

好像是吧,我不了解所有模块设置。中文数据手册中那个模拟看门狗的阈值寄存器是右对齐的,开始我还很庆幸,不用考虑这个问题了,但发现运行结果出错,才怀疑到这个问题,查看英文手册,果然原版是左对齐的。不知道哪个混蛋XX翻译的。

发表于 2012-6-16 11:50:20

RE:关于STM8数据对齐的左对齐右对齐问题

好的。我看看手册。
页: [1] 2
查看完整版本: 关于STM8数据对齐的左对齐右对齐问题