位置:51电子网 » 技术资料 » 仪器仪表

感器的检测通常使用两种技术

发布时间:2013/11/19 20:04:22 访问次数:708

    在机器人控制中,对传感器的检测通常使用两种技术——墩询或中断。
    轮询就是主程序段有一个无限循环部分,DS1608BL不断循环查询接有传感器的端口的状态,一旦发现变化,则命令执行机构做出相应的动作。轮询法的优点是程序简单明了,缺点是占用系统资源,而且会带来系统整体响应的延迟,让机器人看上去有点迟钝。
    中断则不同,这是一种软硬件结合的方式。中断是单片机芯片设计中就带有的功能,其工作原理是由外界电平变化反应到某个特定(能够引发中断的)端口上(中断源),此时无论程序执行到哪里,都会自动跳转到一个专属此中断的地址(中断向量)。在这个地址一般会安排一条跳转地址,跳转到一段所谓的中断服务程序继续执行。这段中断服务程序执行完,最后是一条中断返回指令,系统将跳回刚才被中断的地方继续执行。图7形象地描述了中断的过程。
    ATmega48系列单片机设计了两个外部中断源INTO、INT1,分别安排在端口D的第2和第3引脚。另外,当每个端口的引脚电平发生变化时,都可以引发端口引脚电平变化中断。
    ROBOT C开发平台为初学者提供了便捷的中断设置对话框。点击中断设置按钮(见图8)后调出中断设置对话框(见图9)。用户只要简单地勾选、下拉或点击所需要的中断和触发方式,然后点击“确定”按钮即可,系统会自动生成相应的中断向量定义语句、中断服务程序框架和中断寄存器初始化设置函数。
    z你所要做的事就是在中断服务程序框架内编写中断所要完成的工作,然后在主程序模块的初始化部分加入对中断寄存器初始化设置函数的调用语句。
    有关中断的详细说明,这里不再赘述。读者要搞清的是几个中断触发方式的概念:状态.跳变沿和电平变化。
    所谓状态,是指电平处于某个值维持一段时间不变,例如高电平状态或低电平状态。外部中断INTO和INT1就支持低电平状态触发。这种模式要慎用,因为一旦该引脚的电平由高变低,然后保持着低电平状态,中断会不断引发,直至电平恢复到高,这也许会造成一些莫名奇妙的后果,是我们不需要的。
    跳变沿引发中断是指当电平由高变为低或由低变为高时的下降沿或上升沿引发的中断,这是最常用到的中断触发方式。因为外部世界的电平往往处于不是高就是低的自然状态。例如遥控器,平时无信号时,其引脚都处于低电平状态,一旦给出信号就会由低跳变到高,产生一个上升沿,单片机端口感知后,就会引发中断。
    电平变化是指无论电平由高变低还是由低变高,都会引发中断。这就带来一个问题,中断会连续产生两次。解决办法是在中断服务程序中要加入一些判断语句,以便筛选出我们需要的电平变化去执行断服务。在后面的实战用例中,用汽车遥控钥匙遥控机器人使用的是外部中断O,而用玩具遥控器遥控机器人使用的是引脚电平变化中断。
    在机器人控制中,对传感器的检测通常使用两种技术——墩询或中断。
    轮询就是主程序段有一个无限循环部分,DS1608BL不断循环查询接有传感器的端口的状态,一旦发现变化,则命令执行机构做出相应的动作。轮询法的优点是程序简单明了,缺点是占用系统资源,而且会带来系统整体响应的延迟,让机器人看上去有点迟钝。
    中断则不同,这是一种软硬件结合的方式。中断是单片机芯片设计中就带有的功能,其工作原理是由外界电平变化反应到某个特定(能够引发中断的)端口上(中断源),此时无论程序执行到哪里,都会自动跳转到一个专属此中断的地址(中断向量)。在这个地址一般会安排一条跳转地址,跳转到一段所谓的中断服务程序继续执行。这段中断服务程序执行完,最后是一条中断返回指令,系统将跳回刚才被中断的地方继续执行。图7形象地描述了中断的过程。
    ATmega48系列单片机设计了两个外部中断源INTO、INT1,分别安排在端口D的第2和第3引脚。另外,当每个端口的引脚电平发生变化时,都可以引发端口引脚电平变化中断。
    ROBOT C开发平台为初学者提供了便捷的中断设置对话框。点击中断设置按钮(见图8)后调出中断设置对话框(见图9)。用户只要简单地勾选、下拉或点击所需要的中断和触发方式,然后点击“确定”按钮即可,系统会自动生成相应的中断向量定义语句、中断服务程序框架和中断寄存器初始化设置函数。
    z你所要做的事就是在中断服务程序框架内编写中断所要完成的工作,然后在主程序模块的初始化部分加入对中断寄存器初始化设置函数的调用语句。
    有关中断的详细说明,这里不再赘述。读者要搞清的是几个中断触发方式的概念:状态.跳变沿和电平变化。
    所谓状态,是指电平处于某个值维持一段时间不变,例如高电平状态或低电平状态。外部中断INTO和INT1就支持低电平状态触发。这种模式要慎用,因为一旦该引脚的电平由高变低,然后保持着低电平状态,中断会不断引发,直至电平恢复到高,这也许会造成一些莫名奇妙的后果,是我们不需要的。
    跳变沿引发中断是指当电平由高变为低或由低变为高时的下降沿或上升沿引发的中断,这是最常用到的中断触发方式。因为外部世界的电平往往处于不是高就是低的自然状态。例如遥控器,平时无信号时,其引脚都处于低电平状态,一旦给出信号就会由低跳变到高,产生一个上升沿,单片机端口感知后,就会引发中断。
    电平变化是指无论电平由高变低还是由低变高,都会引发中断。这就带来一个问题,中断会连续产生两次。解决办法是在中断服务程序中要加入一些判断语句,以便筛选出我们需要的电平变化去执行断服务。在后面的实战用例中,用汽车遥控钥匙遥控机器人使用的是外部中断O,而用玩具遥控器遥控机器人使用的是引脚电平变化中断。
相关技术资料
11-19感器的检测通常使用两种技术

热门点击

 

推荐技术资料

驱动板的原理分析
    先来看看原理图。图8所示为底板及其驱动示意图,FM08... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!