DE | EN | CN

ESE模块10 TIMER 定时器

编写自己的定时器。当试图将微控制器的任务简化到最核心的本质时,实际上总是涉及特定时间内的特定行为。在专业术语中称为定时(Timing)。对于嵌入式开发人员来说,定时和定时器是密不可分的。微控制器的定时器数量和功能是其重要的性能特征之一。通过SysTick实验和生成PWM信号,我们已经应用了定时器。在这个示例中,我们将使用定时器来通过定时器中断生成自己的定时。定时器将触发一个8位计数器的递增,并将计数器的值发送到SiSy-ControlCenter。

开发一个微控制器应用程序,其中一个定时器作为触发器来触发一个计数器,并将计数器值传输到个人电脑。

解决方案的要求是:

  • Timer中断应每50毫秒触发一次
  • 计数器应为无符号的8位数
  • 数据传输应在19200波特下进行
  • 传输的值应为纯二进制数据

SRS Timer

进行以下准备工作:

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

任务是构建一个自己的定时器来触发控制器的动作。要触发的动作是通过递增一个值并通过UART将该值发送到个人电脑来表示的。这个动作的触发应该每50毫秒定期发生一次。这次特别之处在于,一个系统组件并不作为系统板上的可见元素存在,而是控制器的内部组件。因此,我们的系统具有以下系统组件:

在PEC库中,我们找到了基本模块PecTimer。除了一个用于处理定时器中断(事件处理程序)的虚拟操作onTimer()之外,它还提供了几种初始化定时器的不同选项:configHz()、configMs()、configUs()。因此,开发人员基本上无需进行通常的定时器计算,如分频器值等。

以下是本应用程序解决方案的设计图。

设计图解读:
类控制器具有触发器和终端。触发器是PecTimer。终端是带有baudrate19200的PecUart。

注:内部系统模块=系统模块

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

  • 特定的计时器,例如Timer2
  • 在端口A9上使用的UART Uart 1
  • 一个8位计数器作为触发类的属性
  • 覆盖Trigger类的onTimer操作

使用以下类图作为这些步骤的指南。

在控制器的启动顺序中,计时器将初始化为所需的50毫秒。 在Controller类的onStart()操作中写入以下代码。

Controller::onStart():void
// boot sequence after start SysTick
trigger.configMs(50); // 将触发器配置为每50毫秒触发一次



计算要触发的动作并将其发送到PC终端,在Trigger类的onTimer()操作中写入以下代码:

Trigger::onTimer():void
counter++;
app.terminal.writeByte(counter);

代码解析:

1. counter++;:这是一个自增运算符,它将变量“counter”的值增加1。例如,如果“counter”的值是5,则执行这行代码后,“counter”的值将变为6。

2. app.terminal.writeByte(counter);:这是将“counter”的值写入到应用程序中的终端(terminal)的一个字节的操作。这意味着“counter”的当前值将以字节的形式发送到应用程序的终端上。

现在可以测试此应用程序解决方案。将计时器的初始化时间更改为如5毫秒,然后在SiSy控制中心检查结果。

翻译程序。 如有必要,请更正拼写错误。 将可执行程序传送到控制器的程序存储器中。

  • 1.将系统板连接到PC
  • 2.创建应用程序解决方案(编译和链接)
  • 3.应用程序传输(烧录)
  • 4.打开并配置SiSy控制中心(COMx,19200波特)
  • 5.连接并切换到Oszi视图

总结

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

视频总结

oder die schnelle Version ohne Sprachkommentare

练习 8

扩展应用程序,在每次触发事件(toggle)时都会切换的LED。

继续:

搜索词