huwr 发表于 2022-12-10 10:39

移位操作

手册里ADDL和ADDH中分别存放的AD 数据,

需要移位操作吧,把2个寄存器合并之后,再转化成10进制数据吧?

huwr 发表于 2022-12-10 10:43

uchar adh,adl;
uint advalue;

adl=ADDL;                     //读取低8位转换数据            
adh=ADDH;                     //读取高2位转换数据
advalue=(adh&0x03)*256+adl;   //将高低位数据进行合并


这样用对吧?


如果不用中断,应该怎样读取标志位来判断是否转换完成?

dingy 发表于 2022-12-10 10:49

advalue=(adh<<2)+adl

huwr 发表于 2022-12-10 10:53

不知道 sh79f166提供查询模式么?不想用中断模式

juventus9554 发表于 2022-12-10 10:55

查询模式就是 不把中断打开,照样进行转换,启动转换后,不停查询ADCIF是否变成1,变成1则表示转换完成。

xxrs 发表于 2022-12-10 10:58

楼上说得对,读取AD DATA后,请将ADCIF清0,再次开始转换。

huwr 发表于 2022-12-10 11:01

GO/DONE   AD状态标志位, 在查询状态 是否有用?

huwr 发表于 2022-12-10 11:03


比如我什么时候用到GO/DONE   AD状态标志位
还有,ADCIF和 GO/DONE应该怎么理解这2个的区别和相同的地方

zhanghqi 发表于 2022-12-10 11:05

可以说,他们对于AD转换结束,产生的效果是一样的。

yufe 发表于 2022-12-10 11:10


他们只是两个不同的标志位而已。
GO/DONE表示ADC开始与结束,如果写1,则转换开始,如果被清0,则转换结束在结束的同时,ADCIF置1,如果同时中断允许打开,则会同时产生中断。
ADCIF表示中断请求,置1表示中断请求已经有了,这个是中断系统的
页: [1]
查看完整版本: 移位操作