打印

基础问题SH79F166,10位AD怎么用?

[复制链接]
2486|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laorenshen|  楼主 | 2010-10-24 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 laorenshen 于 2010-10-24 13:32 编辑

基础问题,
看到手册,
ADDL  和  ADDH  中分别存放的AD 数据,

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

uchar adh,adl;
uint advalue;

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


这样用对吧?


如果不用中断,应该怎样读取标志位来判断是否转换完成?给一个代码,谢谢
沙发
int3| | 2010-10-24 18:48 | 只看该作者
advalue=(adh<<2)+adl

使用特权

评论回复
板凳
bananarer| | 2010-10-25 09:09 | 只看该作者
http://www.sinowealth.com/zh/sof ... =8BIT%20FLASH%20MCU
有一个adc例程,你可以看一下

使用特权

评论回复
地板
laorenshen|  楼主 | 2010-10-25 09:12 | 只看该作者
3# bananarer


看了 是中断的模式  sh79f32的, 没有什么太大帮助,

sh79f166  提供的资料太少了,基本上没有,demo和 应用笔记,

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

使用特权

评论回复
5
bananarer| | 2010-10-25 09:22 | 只看该作者
本帖最后由 bananarer 于 2010-10-25 09:24 编辑

查询模式就是 不把中断打开,照样进行转换,启动转换后,不停查询ADCIF是否变成1,变成1则表示转换完成。读取AD DATA后,请将ADCIF清0,再次开始转换。

使用特权

评论回复
6
laorenshen|  楼主 | 2010-10-25 09:41 | 只看该作者
5# bananarer



谢谢理解这个意思了, GO/DONE   AD状态标志位, 在查询状态 是否有用?

比如我什么时候用到  GO/DONE   AD状态标志位

使用特权

评论回复
7
laorenshen|  楼主 | 2010-10-25 10:07 | 只看该作者
6# laorenshen


ADCIF  和 GO/DONE  应该怎么理解这2个的区别和相同的地方

使用特权

评论回复
8
bananarer| | 2010-10-25 10:11 | 只看该作者
可以说,他们对于AD转换结束,产生的效果是一样的。

使用特权

评论回复
9
laorenshen|  楼主 | 2010-10-25 10:39 | 只看该作者
8# bananarer


谢谢,可否详细说说 2者的 区别和相同  的地方,我想弄得更明白一些,谢谢了

使用特权

评论回复
10
bananarer| | 2010-10-25 12:49 | 只看该作者
他们只是两个不同的标志位而已。
GO/DONE表示ADC开始与结束,如果写1,则转换开始,如果被清0,则转换结束在结束的同时,ADCIF置1,如果同时中断允许打开,则会同时产生中断。
ADCIF表示中断请求,置1表示中断请求已经有了,这个是中断系统的。

使用特权

评论回复
11
laorenshen|  楼主 | 2010-10-27 17:39 | 只看该作者
南京立超服务很好,技术很厉害,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

169

帖子

0

粉丝