请教大虾们:我在取10位ADC结果之前设置了右对齐数据方式,即ALIGIN=1 ,但是又用到模拟看门狗寄存器上下限阈值设定,它却是左对齐的格式。而我在RAM中定义一个16位的字之后,对其算术运算都是以右对齐的方式。现在的问题是模拟看门狗只能是左对齐的,所以我想统一全部用左对齐方式,请问如何把我在RAM中要定义的字也设为左对齐的方式进行算术运算?或者说是不是把ALIGIN位设为0,系统就全部认为数据是左对齐的了?或者有没有简洁的办法将一个左对齐的数据转换为右对齐?烦那,例如将一个8位的右对齐字改为左对齐的我都手工改,这对常量还好说,对变量来说就是个恶梦了。 |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】
RE:关于STM8数据对齐的左对齐右对齐问题
RE:关于STM8数据对齐的左对齐右对齐问题
举例二,我要装X的内容直接写入ADC_HTR,是如何操作的?
RE:关于STM8数据对齐的左对齐右对齐问题
RE:关于STM8数据对齐的左对齐右对齐问题
RE:关于STM8数据对齐的左对齐右对齐问题
RE:关于STM8数据对齐的左对齐右对齐问题
回复:关于STM8数据对齐的左对齐右对齐问题
我的理解是,AD采集的时候,对于左对齐,是从左开始舒10位,而对于右对齐,是从右开始数10位。左对齐,就要把值友谊6位,为右对齐就不用移位了。不知道,我理解的对不对。
10位左对齐的格式是:低两位仍然存放在R0R1位,你理解的是低两位跟着存放到R6R7了。所以还要将低两位移回到R0R1。整个转换过程需要2*6+4*6=36指令周期,这不是个好办法。
回复:关于STM8数据对齐的左对齐右对齐问题
默认都是右对齐的,对于左对齐的设置,你可以看看手册,有没有地方设置。好像只有AD用到这个对齐方式了吧。
好像是吧,我不了解所有模块设置。中文数据手册中那个模拟看门狗的阈值寄存器是右对齐的,开始我还很庆幸,不用考虑这个问题了,但发现运行结果出错,才怀疑到这个问题,查看英文手册,果然原版是左对齐的。不知道哪个混蛋XX翻译的。
RE:关于STM8数据对齐的左对齐右对齐问题
RE:关于STM8数据对齐的左对齐右对齐问题
用指令说明如下:
ld A,#$4 ;
DIV x,A ;将x内的AD结果除以4
LD ADC_HTRL,A ;余数存入低2位
LD A,XL ;将商数存入高8位
LD ADC_HTRH,A ;
以上指令共花去20个指令周期,相对来说简洁些了。
RE:关于STM8数据对齐的左对齐右对齐问题