求解:STC12C AD 逐次比较过程中的寄存器是不是结果寄存器

[复制链接]
897|0
 楼主| jrcsh 发表于 2015-6-24 00:03 | 显示全部楼层 |阅读模式




图中~~~  D..1  是AD 的状况显示, 高平是进入中断程序远行代码的用时(这部分是代码效率决定的可以优化),低部分是约90个转换周期的用时(这部分是跑不了的占用时间)。


MCU 型号 STC 12C5A60S2  

AD转换结果的2个结果寄存器(10位),可设置对换过来
sfr ADC_RES     =   0xBD;           //ADC hight 8-bit result register
sfr ADC_LOW2    =   0xBE;           //ADC low 2-bit result register


AD中断处理函数:
void adc_isr() interrupt 5 using 1
{

ADC_CONTR=0xe0;      

ad[aaa]=ADC_RES;
ad2[aaa]=ADC_LOW2;
ADC_CONTR =0xe8;

}  //约占时 1.667uS   




想优化为:
void adc_isr() interrupt 5 using 1
{

ADC_CONTR=0xe0;         //Clear ADC interrupt flag
aaa=0;
ADC_CONTR =0xe8;

} //约占时 541.7ns

(aaa 当一个状态标记用,到时在主程序上处理)

但这样写有个疑问, PDF手册上说,这个AD是逐次比较型,哪么转换的结果就在写寄存器了,手册上查不到这个电路原理图,不知道这个比较用的寄存器不是直接用了结果寄存器。
是的话~~~就白折腾了







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:以上以下纯属瞎扯,概不承认!!!!! 感谢  应试教育 培养了我的基础    感谢自己  没吧应试教作为各种借口

228

主题

2350

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部