分享

Labview实验十二:按键中断(二)

 龙之吻6iinxl8c 2019-03-29

接着上篇的程序

Main VI:按键中断VI

Labview实验十二:按键中断(二)

Main VI主要用来初始化各种寄存器和外设,配置中断、设置中断优先级以及开启中断等操作。而处理中断发生后用户需要执行的事件代码就要用到ISR中断服务VI,处理完毕后清除中断标志位后即可返回Main VI。

下面,我们编写ISR中断服务VI。

一,新建一个外部IO中断服务子VI的ISR模板函数EXTI_IO_ISR.vi。(注意,该VI名不能修改,否则无法正常编译)

1,新建中断服务子VI

Labview实验十二:按键中断(二)

2,保存命名(要去掉默认名称最后面的数字),使名称保持为EXTI_IO_ISR.vi。

Labview实验十二:按键中断(二)

3,按住左键,将子VI拖到主VI下面

Labview实验十二:按键中断(二)

二,新建一个全局变量,用于主VI与中断服务子VI之间的信息交互。

1,新建全局变量

Labview实验十二:按键中断(二)

Labview实验十二:按键中断(二)

2,保存命名Info_Global.vi。

Labview实验十二:按键中断(二)

3,添加3种类型的输入控件:整形数值控件(Counter),布尔型变量(flag),字符串型控件(Message),然后把名称改下

数值型控制件:记录进入中断服务VI的有效次数

布尔型控件:记录一些状态信息供主VI使用

字符串型控件:用来传递一些命令参数或者数据信息

Labview实验十二:按键中断(二)

Labview实验十二:按键中断(二)

4,将其拖到中断服务子VI下

三,缩写中断服务子VI

根据相关IO,新建EIO

1,硬件电路

Labview实验十二:按键中断(二)

2,创建EIO

Labview实验十二:按键中断(二)

以上IO放入程序框图中,需要设置输入输出方式

四,编写KEY_1中断服务子VI

Labview实验十二:按键中断(二)

(一)打开EXTI_IO_ISR.vi程序框图

1,打开EXTI_IO_ISR.vi程序框图,切换到case条件结构中的EXTI2_ISR分支,即中断号2

Labview实验十二:按键中断(二)

2,增加3帧平铺式顺序结构

Labview实验十二:按键中断(二)

Labview实验十二:按键中断(二)

(二),第1帧:按键消抖

对于提高机械式开关按键的准确性来说,一般可以通过增加20ms延时来消除物理按键因抖动带来的误判。因为按键输入选择的是下降沿触发,如果延时20ms后,按键输入引脚还是低电平状态,说明这是一次有效的按键触发

1,等待20ms

Labview实验十二:按键中断(二)

Labview实验十二:按键中断(二)

(三)第2帧:LED_1指示灯状态

1,LED_1连续闪烁5次,设闪烁时间间隔为500ms

2,KEY_1和LED_1

KEY_1要在属性中设置输入方式:上拉输入

LED_1要转为写入,要在属性中设置输出方式:开漏输出

Labview实验十二:按键中断(二)

3,条件结构,确认当按键输入为低电平有效

Labview实验十二:按键中断(二)

4,for循环,实现指示灯闪烁

Labview实验十二:按键中断(二)

每当for循环迭代计数数i对10取余为0时,对LED_1进行取反操作,等效为每隔500ms(10*50ms)反转一次。

商与余数

Labview实验十二:按键中断(二)

完整的for循环程序

Labview实验十二:按键中断(二)

注:

flag标志位的添加:

将之前建立的Info_Global.vi拖到程序框中,然后在选择项里选择flag

Labview实验十二:按键中断(二)

For循环的循环条件:需勾选条件接线

Labview实验十二:按键中断(二)

Labview实验十二:按键中断(二)

(四)第3帧:清除中断标志位

主要用来通知CPU该次中断已经完成并挂起,可以完全退出该中断线程,否则下一次产生的中断会被屏蔽,无法再进入服务子VI程序。

1,清除中断标志位

Labview实验十二:按键中断(二)

2,在中断标志位引脚创建常量,并选择2号中断位:EXTI2_Flag

Labview实验十二:按键中断(二)

3,恢复flag标志位为假

Labview实验十二:按键中断(二)

完成KEY_1中断服务子VI

Labview实验十二:按键中断(二)

下篇讲其他按键的中断服务子VI

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多