打印

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

[复制链接]
531|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

主题

2348

帖子

18

粉丝