DE | EN | CN

ESE块11 INT 外部中断

在前面的练习中,我们使用了一个Timer定时器作为内部触发器。然而,在嵌入式系统中,外部触发器至少与定时器具有同等重要性。例如,在汽车中,我们可以找到门上的开关,后备箱盖或行李箱盖,安全带,照明系统,电动窗户,驾驶员区域和方向盘上的各种开关等等,所有这些开关元件已经不再简单地开启或关闭某些功能。这些系统模块的信号由微控制器处理。当然,我们可以通过不断轮询(polling)开关来完成这项任务。但是,在要处理的信号数量庞大时,轮询可能会消耗大量的计算时间,这样就无法为其他任务提供足够的时间。因此,检测信号输入的变化(上升沿或下降沿)以及触发和处理硬件事件,即中断,变得非常重要,因为基于事件的处理消耗的计算资源更少,而且还可以更好地考虑信号的优先级。

要开发一个微控制器应用程序,其中外部信号的下降沿作为控制器活动的触发器。控制器对外部事件的响应应通过切换 LED 实现。

该解决方案应满足以下要求:

  • 外部信号,由 A0 上的按钮引发下降沿
  • LED连接引脚B0
  • 没有持续的轮询(polling)按钮
  • 直接在中断中处理事件

SRS ext.INT

进行以下准备工作:

  • •创建一个新的类图
  • •目标语言ARM C ++
  • •目标平台STM32F042 mySTM32板灯HAL
  • •基本框架应用程序的图模板
  • 用于PEC应用程序(XMC,STM32,AVR)
  • •为STM32F0分配驱动程序包
  • •(可选)分配模板stm32F042_48Mhz

任务是通过中断来评估功能键的激活,LED应根据对中断的响应而切换。PEC库提供了PecPinInterrupt库块,用于处理外部中断。

如果仔细看一下该模块,可以看到PecPinInterrupt具有PecPinInput的所有属性,以及如何与pinPullUppinLowActive结合使用。这些选项非常适合mySTM32板上指示灯上的按钮,因为按下时它们靠近地面。

对于LED指示灯我们可以使用PecPinOutputPecLed。 我们已经很熟悉这些组件的处理,可以得出以下的设计草图。

该类模型可以用以下文字描述:
控制器(Controller)有功能键(Funktionstaste)。 功能键(Funktionstaste)是PecPinInterrupt。 功能键(Funktionstaste)有指示灯LED(IndicatorLED)。 指示器LED(IndicatorLED)是PecLed。

此设计的新特性是指示灯LED (IndicatorLED)类不在控制器中,而是聚合到FunctionKey类中。创建了一个结构,FunctionKey类隐藏在IndicatorLED类。否则我们总是将系统块连接到控制器。FunctionKey类现在是IndicatorLED的所有者,因此可以直接使用没有任何限制。此应用程序中没有其他组件使用IndicatorLED。现在FunctionKeyIndicatorLED组成了一个复合单元,控制器(Controller)将用作组件。复合系统组件称为系统组件。

注意:系统组件=来自多个系统组件的聚合

实现应包括上述草图中描述的元素,还必须添加以下模型元素。

  • 按钮和LED的特定引脚A0和B0
  • 按钮的pinLowActive和pinPullUp
  • 覆盖FunctionKey类的onPinInterrupt()虚拟操作

使用以上设计图完成必要的设计步骤。

对按键(信号变化:下降沿)的所需反应应在中断中进行,即在onPinInterrupt()操作中进行。写下切换LED的代码。

::onPinInterrupt():void
indicatorLED.toggle();

类控制器的操作onStart()onWork保持为空。所有动作都在中断中发生。构建并测试该应用程序。

翻译程序。将可执行程序传送到控制器的程序存储器中。

  • 1. 创建(编译和链接)
  • 2. 烧录
  • 3. 连接…

总结

  • 1.创建并打开类图
  • 2.选择用于PEC应用程序的图模板,为STM32F0下载载并插入驱动程序包
  • 3.在资源管理器中从库中搜索PEC模块
  • 4.将所需的库块拖到图中
  • 5. 连接类(聚合,实现)
  • 6.从系统组件组装组件
  • 7.在操作中创建必要的源代码
  • 8.在类图中创建并烧录STM32应用程序

视频总结

oder die schnelle Version ohne Sprachkommentare

练习9

扩展应用程序第二个带有UART终端的按钮。每次按下按钮,都以19200波特对计数器进行计数,然后发送到SiSy控制中心。

继续:

搜索关键词