嵌入式技术william hill官网
直播中

KK

4年用户 2909经验值
擅长:嵌入式技术
私信 关注
[经验]

【每日一练】RT-Thread Nano-ADC(时钟管理之软件定时器)-1软件定时器创建(第十五节学习视频)

11.RT-Thread Nano-ADC(时钟管理之软件定时器)-1软件定时器创建

本视频为【每日一练】的第十五节学习视频,注:刚开始学习的童鞋请从第一节视频开始打卡哦(本节视频在下面打卡即可)

学习任务:

1、如果启用了软件定时器RT_USING_tiMER_SOFT,在创建定时器时,rt_timer_create的flag参数若传入0,此时表示:?(单选)
A:创建的timer是hard模式          B:创建的timer是soft模式

2、创建了hard模式的定时器,在定时器超时函数里面做哪些动作是被允许的?(多选)
A:打印       B:做算数运算       C:申请内存       D:获取信号量

打卡规则详见
【每日一练】RT-Thread Nano入门全套教程,名师带路,不走弯路



往期回顾:
【每日一练】RT-Thread Nano-添加源码(第一节视频学习)
【每日一练】RT-Thread Nano-启动运行流程分析(第二节学习视频)
【每日一练】RT-Thread Nano-rt_kprintf支持(第三节视频学习)

【每日一练】RT-Thread Nano-Finsh组件支持(第四节学习视频)

【每日一练】RT-Thread Nano-线程创建1(第五节学习视频)
【每日一练】RT-Thread Nano-线程讲解2(第六节学习视频)
【每日一练】RT-Thread Nano-自动初始化及MSH-EXPORT-1(第七节学习视频)
【每日一练】RT-Thread Nano-自动初始化及MSH-EXPORT-2(第八节学习视频)

【每日一练】RT-Thread Nano-串口接收(信号量使用)编写1(第九节学习视频)
【每日一练】RT-Thread Nano-串口接收(信号量使用)调试2(第十节学习视频)

【每日一练】RT-Thread Nano-外部中断(消息队列使用)1(第十一节学习视频)
【每日一练】RT-Thread Nano-外部中断(消息队列使用)2(第十二节学习视频)
【每日一练】RT-Thread Nano-动态创建线程代码修整(第十三节学习视频)
【每日一练】RT-Thread Nano-通用定时器(按键消抖)-消息队列(第十四节学习视频)
  • Image_20210531110120.png

回帖(9)

逝我想太多

2021-5-31 11:03:57
1、A
2、ABD
硬件定时器模式,是在中断的上下文中执行定时器回调函数,而,中断的上下文中禁止使用类如 rt_malloc 之类的 API。
RT-Thread 默认情况下,使用硬件定时器模式 RT_TIMER_FLAG_HARD_TIMER,即flag = 0。

举报

ZzzzzRui

2021-5-31 12:04:47
1、A
#define RT_TIMER_FLAG_HARD_TIMER    0x0     /* 硬件定时器   */

2、ABD
微信图片_20210531120429.png
举报

jf_66501560

2021-5-31 23:38:44
答案:
1、A
2、A、B(获取信号量将会使中断阻塞,故不可以)
本节是对内核定时器的讲解,rtthread提供两种模式的定时器:软件定时器和硬件定时器,默认是硬件定时器,硬件定时器在时钟的中断上下文中进行,不能在超时函数中执行申请和释放内存、让线程挂起的操作,硬件定时器的超时函数是在systick_handle里的rt_check中判断当前节拍是否达到定时器链表的值。
举报
  • 定时器.png

Hu y

2021-6-1 13:42:01
1、A
2、AB  在中断上下文中,不允许申请内存。对于获取信号量则要看信号量等待方式,
没有等待时间获取信号量就是允许的,有等待时间获取信号量就是错误的,因为这种会导致在中断中挂起。
批注 2021-06-01 134144.png
举报

青云景龙

2021-6-1 23:25:18
1、A
SOFT_TIMER 模式可配置,通过宏定义 RT_USING_TIMER_SOFT 来决定是否启用该模式。该模式被启用后, SOFT_TIMER 模式的定时器超时函数在都会在 timer 线程的上下文环境中执行。
#define RT_TIMER_FLAG_HARD_TIMER    0x0     /* 硬件定时器   */
#define RT_TIMER_FLAG_SOFT_TIMER    0x4     /* 软件定时器   */
2、AB
执行时间应该尽量短,执行时不应导致当前上下文挂起、等待
打印和数的运算不会占用太长的时间
申请内存和释放内存也会产生影响
获取信号量也有等待类型的信号量
因此这些占用太长时间的操作都不可以




1 举报
  • ADC.png

钱一

2021-6-2 00:14:43
1、如果启用了软件定时器RT_USING_tiMER_SOFT,在创建定时器时,rt_timer_create的flag参数若传入0,此时表示:?(单选)
A:创建的timer是hard模式
2、创建了hard模式的定时器,在定时器超时函数里面做哪些动作是被允许的?(多选)
A:打印       B:做算数运算

举报
  • 微信图片_20210602001409.png

春天一满屋

2021-6-2 20:40:23
1、A
2、AB
013.png
举报

陈星闽

2021-6-7 22:42:12
学习了定时器的启动、分类(hard/soft)、删除
同时需要注意在定时处理函数中,应避免长时间处理函数

1、如果启用了软件定时器RT_USING_tiMER_SOFT,在创建定时器时,rt_timer_create的flag参数若传入0,此时表示:?(单选)
A:创建的timer是hard模式          B:创建的timer是soft模式
答案:A

2、创建了hard模式的定时器,在定时器超时函数里面做哪些动作是被允许的?(多选)
A:打印       B:做算数运算       C:申请内存       D:获取信号量
答案:AB
截屏2021-06-07 22.37.01.png
1 举报
  • KK: 后面的课程请继续打卡哦

游走在01的海洋

2021-7-14 22:54:06
一、答案
1.A--如果是0,则是单词定时器、默认使用HARD_TIMER模式;
2.AB.
C选项错误,HARD_TIMER相当于中断,不能在其中做有关申请、释放动态内存的操作;
D选项错误,HARD_TIMER相当于中断,执行要尽量简短;不能使用获取信号量,因为会产生延时、可能会挂起;导致程序卡在中断中;
二、图片

举报
  • 2.JPG

更多回帖

发帖
×
20
完善资料,
赚取积分