原创 有关DS18B20测温中断方式实现的讨论

2007-8-18 20:31 5422 5 5 分类: MCU/ 嵌入式

       前段时间在博客里面写了或传了点有关休闲娱乐方面,今天我想和大家一同切磋一下电子知识!
       今天一开EDN的“伯伯”就看到有一篇<<
用51单片机调DS18B20 >>的文章,“斑主”的资源共享的作风很值得我们学习!
       去年的某个时候我也有幸接触到DS18B20单总线温度传感器,最初也不知道什么叫做单总线,随着学习时间的加长和相关资料的查阅,也似乎明白了,但还是不太相信(总感觉有点XIE—MEN),直到自己用的那一天才知道它确实是个好东东!但我们一般在使用它进行测量温度时,一般都只让单片机的所用资源交给它,直到测量完成后才转而处理其它事情,假如有这样一个系统,上位机要通过串口通讯来命令下位(单片机)进行温度测量或其它什么的,那么按照常规我们都会在下位机对DS18B20传感器进行温度测量时把中断系统关闭,以使其时序不受串口中断的影响,直到温度测量完成后才开中断系统。
       假如有这么一个实时系统要我们工程师去开发,该系统也分为上位机(PC或ARM)和下位机(假如是单片机,任务是测量温度),上位机的权限最高,任何时候下位都必需响应它,这就要求我们的下位机在进行温度测量时不能关闭中断系统,这样也就带出的我们博客的主题“DS18B20测温中断方式实现”。这个问题刚开始是由我朋友提出来的,我当时也只是随便想想,没作太深的研究,就回答他:“这个基本上很难”,在后来的日子里,看了许多有关微控制器中断系统的文章,发现应用微控制器的“堆栈”原理有可能帮我们实现,我是这样想的,我们把DS18B20的每一种操作看作是一次“出栈”操作,每操作一次作一下标志,当中断来时计下当时的操作步骤代号,再去执行中断服务程序,执行完成后再回来继续DS18B20测温的操作,如此一来,便可以实现DS18B20测温的中断方式实现。
       当然,以上只是本人的一点拙见,还未曾验证!
       各位如果有更好的实现方法或建议,不如拿出来大伙一起研究,一起进步!
 


 

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条