2022年S.D.Lu的uCOSII入门学习笔记中断函数.pdf
-
资源ID:12941172
资源大小:548.03KB
全文页数:4页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年S.D.Lu的uCOSII入门学习笔记中断函数.pdf
S.D.Lu 的 uC/OS II 入门学习笔记 (8):中断函数本篇的实验将在例3-2 的基础上进行修改,目的是学习在C/OS II 系统下如何编写中断服务函数。实验中使用的是TIM2 的溢出中断。关于STM32 通用定时器的使用,需要另外学习,在此不进行讨论。 只需知道在定时器初始化中,以下两个参数决定了定时器的溢出率就可以了。例 8-1,在例 3-2 的基础上进行修改。步骤 1:在工程中添加相关文件。本例中将用到NVIC 和定时器的相关函数,所以需在工程中添加相关文件。并在 includes.h 中包含其头文件。步骤 2:编写定时器初始化函数。在 bsp.h 文件中增加函数声明。在 bsp.c 文件中编写函数,并在BSP_Init() 函数中调用。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 4 页 - - - - - - - - - - 步骤 3:编写 NVIC 设置函数。在 bsp.h 文件中增加函数声明。在 bsp.c 文件中编写函数,并在BSP_Init() 函数中调用。步骤 4:编写中断服务函数。在 stm32f10 x_it.c 文件中增加定时器中断函数。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 4 页 - - - - - - - - - - 步骤 5:修改任务代码。将 app.c 文件内容改为如下。屏蔽掉LED1 的控制代码,注意while(1) 中要保留延时函数。 LED2 的控制不使用信号量。编译运行, LED1 和 LED2 不停的闪烁, LED1 频率比 LED2 略低。改变TIM2 的预分频值 (TIM2_Init函数中 ),即可改变 LED1 的闪烁频率。如果之前学习过STM32 的定时器编程,对例8-1 分析后会发现,步骤4 的中断函数和“裸奔”系统的中断只有一点区别,就是在中断函数用户代码的前后分别增加了OSIntEnter();和 OSIntExit(); 函数。这两个函数的作用是对C/OS II 的中断嵌套进行管理的,即记录中断嵌套了多少层。一般来说, 中断服务函数不应该执行复杂的程序,特别是在实时操作系统中,否则中断过程会占用过多的CPU 时间,就会影响系统的实时性。所以一般在中断函数中只负责发送消息,由相应的任务执行相应的运算等复杂操作。下面的例子简单的展示了这样处理的过程。例 8-2 将中断函数修改,中断函数不控制LED1 ,只负责发送信号量,LED1 由 Task_LED 申请信号量后控制。将 app.c 文件内容改为如下。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 4 页 - - - - - - - - - - 编译运行,和前面的运行结果相同。作者: S.D.Lu 深圳2014-6-16 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 4 页 - - - - - - - - - -