关于stm32系统定时任务的问题

图片说明

在用stm32做一个飞控程序时。需要用到上面这种系统循环定时任务,有一个问题:
在System_Task_Loop函数里面,有1ms 、2ms、5ms的循环任务,但是他的这些定时是怎么得到的?
是随便选取的还是计算得到的?
就是他怎么知道在 1ms的时候做这个任务,在2ms的时候做另一个,而且没有3ms 的定时任务?
还有就是什么情况下需要使用这种系统循环任务?
谢谢。

0

1个回答

  1. 这个System_Task_Loop函数需要不停的调用,一般在主函数里面循环调用或者在定时器里面调用
  2. Task_Time.Cnt_1Ms和,Task_Time.Cnt_2Ms, Task_Time.Cnt_5Ms, Task_Time.Cnt_10Ms这4个变量一般在系统滴答时钟里面1ms增加1
  3. 在多任务处理时一般用这种循环任务来分时切换
0
weixin_43768330
EYES OPEN 回复Andrew_Qian: 为什么不能直接放在主循环中,不停循环,而是要隔一段时间呢。不停循环不是实时性更好吗
大约 2 个月之前 回复
m0_37655357
Andrew_Qian 恩,我明白了,但是我想知道他是如何确定在Task_5MS()、Task_1MS()函数里面做什么 的。就是为什么在Task_1MS()需要做这个
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
定时任务与系统定时任务
系统定时任务 1./etc/cron.hourly 2./etc/cron.daily 3./etc/cron.weekly 4./etc/cron.monthly (以上系统会自动运行里面的内容----系统中毒的时候) 5./etc/cron.deny(哪些用户禁止使用定时任务——定时任务黑名单) 6.系统定时任务+logrotate命令完成对日志切割/日志轮询(/var/log/cron /...
系统定时任务
系统定时任务 at 一次性定时任务确定at安装chkconfig –list | grep atd:at服务是否安装service atd restart:at服务的启动at的访问控制如果系统中有/etc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令(/etc/at.deny文件会被忽略)如果系统中没有/etc/at.allow文件,只有/etc
关于定时任务的问题
写一个定时任务(线程),每天在零点查询某个表,根据这个表某个字段的值,决定是否向另一个表插数据,怎样写啊?
关于oracle定时任务的问题
beginrnvariable job1 number;rnbeginrndbms_job.submit(:job1,'appdb.fl_static_main;',sysdate,'sysdate+1/24');rncommit;rnend;rnend;rn添加定时任务的程序如上,oracle 总报ora-06550 line 2,col 10 错误rn就是variable job1 number;有错误,小妹不知该怎么解决,麻烦各位大哥帮小妹看看了:),谢谢了。
关于定时任务
一个表,有两个字段sort和date(当前时间)rn每次插入数据后保存一个当前时间rn在当前时间的一天后,自动触发事件,修改sortrnrn我的想法是每次插入一个数据时,就创建一个定时任务rn使用触发器trigger 创建定时任务rncreate trigger tgInsert before insert on t_financerecordrnfor each row rncreate event myevent on schedule at current_timestamp+interval 1 day rndo call f(1)rn但是会报错rnERROR 1576 : Recursion of EVENT DDL statements is forbidden when body is presentrnrn是没有这个功能?还是我的语句有错误?rnrn或者还有更好的处理办法!rnrn顺便问一下定时任务,如何删除
任务调度框架(1)系统定时任务与JDK定时任务
文章目录系统定时任务JDK 定时任务JDK TimerScheduledExecutor 定时线程池Timer 与 ScheduledExecutor 比较参考 系统定时任务 Linux 的 crontab 命令 windows 下面的 计划任务 JDK 定时任务 JDK Timer 特点 单线程执行,一个任务等待,全部等待 一个任务异常,全部挂掉 依赖系统时间 例子 pu...
系统定时任务--关于ant直接运行xxx.class
1、准备好你自己编写的java项目,已经生成class的。 2、准备ant工具,网上有教程自己学着配置。 3、将build.xml与src、lib、net(你的class生成目录下的所有文件,不包括class生成目录)放在同一级别目录下。   4、build.xml: <?xml version="1.0"?> <project name="frame-server"...
Linux系统管理—系统定时任务
at一次性定时任务chkconfig  --list  |  grep   atd:at服务是否安装service  atd   restart:at服务的启动at的访问控制at命令:atq:查询当前服务器上的at工作atrm:[工作号]:删除指定的at任务crontab循环定时任务crond服务管理与访问控制service  crond   restartchkconfig    crond  ...
系统延迟及定时任务
1.系统延时 命令:at ##at任务是一次性的 常用用法: at + 时间 输入要执行的命令: ctrl+d ##发起动作,将延迟打入后台人物 常用命令: at -l 或者 atq ##查看当前延迟任务,含有at任务的id atrm [at命令的id] 或者 at -d [at命令id] ##取消指定的这个id的任务
系统延时与定时任务
at:关于at的插话: 可以指定某一任务在将来的特定时间运行,该作业可能是一次备份、系统的检查或者特定时间发送的通知。那些花很长时间才可完成的作业正适合at命令,仅需要使用at命令设置为在一分钟或两分钟后执行。然后,您便可以进行安全注销,因为,该任务会在与shell会话断开的情况下运行 at命令必须指定任务应运行的时间,该时间可以是具体的时间或日期(例如,星期一 10:00 pm 或 7月1
solaris系统的crontab定时任务
cron的官网手册: https://docs.oracle.com/cd/E26926_01/html/E29115/cron-1m.html#REFMAN1Mcron-1m crontab的官网手册: https://docs.oracle.com/cd/E26926_01/html/E29113/crontab-1.html#scrolltoc You can specify reg...
系统延时和定时任务
###1.延时任务  root@129 ~]# at 11:51  at> echo hello  at> <EOT>   =ctrl+d  at  -l                    ##查看任务列表  at  -c    任务号           ##查看任务内容 注意:     当任务有输出时,输出会以邮件的形式发给at任务的发起者  ...
系统延时及定时任务
1、系统延时任务 at 23:37            设定任务执行时间 at>  rm -fr  /mnt/*        任务内容 at>    <EOT>   <<  CTRL  +D    退出 at now+1min at>  rm -fr   /mnt/* at>   <EOT> (1) ####此时时间为22:...
Crontab-Linux系统定时任务
摘要:主要简介crontab,crontab在用户级别和系统级别定时任务的设定,crontab的相关配置文件,anacrontable系统服务简单介绍和crontab使用是一些注意事项
Linux 系统定时任务
系统定时任务 目的: 让我们的计算机在指定的时间完成指定的任务,可以是系统的一个命令,也可以是我们之前写好的一个脚本。比如说,我们的服务器晚上的时候(压力比较小),定时拷贝数据库,日志。可以让我们可以从重复劳动中解脱。 windows当中也有这样的功能:在附件中的 任务计划程序 at 一次性定时任务 crontab循环定时任务(可以每天每周每月执行) 系统的crontab设置 an
【STM32】STM32之系统滴答定时器
本文介绍如何使用STM32的系统滴答定时器,以延时1S、10S为例
系统定时任务与延时任务
系统延时任务 at命令发起的延时任务都是一次性的 at xx:xx ##在xx:xx时创建任务 at now+1min ##当前时间1分钟后发起 crtl+d ##任务发起 at -l ##显示列表 at -c 任务号 ##延时任务内容显示 at -r 任务号 ##取消任务 建立监控命令,方便查看任务执行效果 watch -n 1 ls -lR /mnt/ ...
Linux系统管理-系统定时任务
crond里面的字母  d  是demo。 这样回车后就会进入下面这样的一个文件: 例子: & > /dev/null     这行的意思是把最后的输出都丢到回收站里,又加上后台执行,这样就不会显示任何输出信息了。好吧
系统延时任务和定时任务
一  延时文件 首先我们在 /mnt/ 目录下建立几个文件,然后再用at 命令来执行 [root@localhost ~]# at  14:24    #设定任务执行时间 at> rm   -rf   /mnt/*       #任务动作 at> <EOT>  <---> ctrl+d        #用ctrl+d发起任务 job 12 at  Wed...
java定时任务系统
  http://wasiker.iteye.com/blog/233048   系统要求:定时,重复,执行某个操作。要求简单配置,方便,灵活的更改。 想法一:用java.util.timer类。 想法二:用spring任务队列。(如果项目没spring,是否可以剥离出来)。解决方案:使用第三方框架——Quartz。Quartz介绍:Quartz是一个开源的作业调度框架,它完全由Java写成...
CentOS7系统定时任务管理器
CentOS7系统定时任务管理器 CentOS系统定时任务,crond在配置文件中定时任务,可做定时备份数据执行任务操作。 crond管理命令: #systemctl status crond 查看运行状态 #systemctl stop crond 关闭服务 #systemctl start crond 启动服务 #systemctl restart crond 重启服务 ...
linux 系统定时任务之 at
众所周知at和crontab命令用于在指定时间执行命令而两者的主要区别是at只执行一次而crontab可以反复执行 下面我们将详细的先介绍以下at命令的使用方法 语法 at(选项)(参数) 选项 -f:指定包含具体指令的任务文件 -q:指定新任务的队列名称 -l:显示待执行任务的列表 -d:删除指定的待执行任务 -m:任务执行完成后向用户发送E-mail 参数 任务执行时间:指定任务执行的日期时
AlarmManager-系统推荐的定时任务
近期leader提了很多这样的需求:每隔几个小时拉取服务器的配置信息存在本地、每隔一段时间跟服务端校对一下本地时间、每隔一段时间上传一下本地日志等等。其实这些本质都是定时任务,隔一段时间去干xxx,那么在安卓中定时任务无非三种实现方式,Handler(CountDownTimer)、Timer、while循环、AlarmManager。(如果有遗漏还望留言告知O(∩_∩)O谢谢)前三种大家基本都用过
系统的延时任务和定时任务
延时任务1.延时任务是临时的,不重复的,当延时任务有输出,输出不会在shell上显示输出会以邮件的形式发送给任务发起人2.用mail命令查看"邮件"at命令来发起延时任务输入邮件编号,查看邮件详情输入q,退出清空邮件     >   /var/spool/mail/root3.设置延时任务at +时间   #执行延时任务的时间>任务       #执行的任务>ctarl+d   ...
系统定时任务 及 延时任务
1. at: 延时任务 监控命令:watch -n 1 ls -l /mnt at: Ctrl+d任务发起 at -r 任务删除 at -l 查看任务 at -c 查看任务内容 查不到时可以用mail查看 at 时间 :定时到该时间去执行任务 at now+1min 一分钟后执行任务 at命令用户黑白名单 白名单存在时,黑名单失效,仅仅存在于白名单内的才会生效 (1)黑名单:/etc/...
系统定时任务及延时任务
一.延时任务(不是永久的) 1.延时任务命令 实验1: 实验环境:开启虚拟机,打开两个shell窗口,一个用于监控,一个用于操作 监控窗口:watch -n 1 ls -l /mnt/ 操作窗口: 1)at 16:14           ---表示在16:14任务自动执行 at>touch /mnt/file  ---在09:10自动执行这条命令 at> ctrl+d...
Linux学习之系统定时任务
1、系统默认是启动crond服务的,一般不用手动启动。 2、crontab的设置项 示例: 5个星号的含义。 示例: 特殊符号: 示例: 在定时任务中如果想采用日期作为输出,例如:date +%y%m%d 那么需要加反斜杠进行转义,例如:date +\%y\%m\%d 修改时间命令date -s 12:00:00 即将
php定时任务,任务系统
http://blog.sina.com.cn/s/blog_5357c0af0100uf77.html 用Linux下的cron服务定时执行php程序
Linux基础——系统定时任务
########一、at 延时命令########watch ls /mnt/ -l                      ##监控命令有两种方式执行延时命令:1、at 时间                2、at now+5min   at 16:00                                 ##在16点时  >touch /mnt/file{1..10}   ...
Linux运维---系统延时及定时任务
1、系统延时任务 at 23:23 ##设定任务执行时间 at> touch file{1..10} ##任务动作 at> <EOT> ##ctrl+d发起任务 at now+1min ##延时1分钟 at> rm -fr /mnt/time/* at&...
系统定时任务和延时任务
1.延时任务 监控命令watch -n 1 ls -R /mnt/ at 默认所有用户都可以使用 [root@localhost ~]#at now+1min 延时1分钟 at> rm -fr /mnt/file* 任务动作 at> ctrl+d 用ctrl+d 发起任务 -l ...
系统的延时与定时任务
(一)延时任务 1.at命令 at+时间点 或 at now+时间段 at -l ##查看计划任务 at -c number ##查看某编号的计划具体内容 at -d number ##删除某编号的计划任务 设置黑白名单 白名单:默认的用户没有权限(root除外)系统原本没有白名单,建立白名单之后黑名单自动失效 白名单:vim /etc/at.allow 黑名单:vim /etc/a...
关于STM32 触摸屏的问题
为什么我的触摸屏可以校准但是就是使用的时候没反应呢,是不是哪里驱动写出来,有经验的朋友可以指导一下吗
关于STM32摄像头的问题
#include rn#include "sys.h"rn#include "usart.h" rn#include "delay.h" rn#include "led.h" rn#include "key.h"rn#include "exti.h"rn#include "wdg.h"rn#include "timer.h"rn#include "lcd.h" rn#include "ov7670.h"rn#include "usmart.h" rnrnextern u8 ov_sta; //在exit.c里面定义rnextern u8 ov_frame; //在timer.c里面定义 rn//更新LCD显示rnvoid camera_refresh(void)rnrn u32 j;rn u16 color; rn if(ov_sta==2)rn rn LCD_Scan_Dir(U2D_L2R); //从上到下,从左到右 rn LCD_SetCursor(0x00,0x0000); //设置光标位置 rn LCD_WriteRAM_Prepare(); //开始写入GRAM rn OV7670_CS=0; rn OV7670_RRST=0; //开始复位读指针 rn OV7670_RCK=0;rn OV7670_RCK=1;rn OV7670_RCK=0;rn OV7670_RRST=1; //复位读指针结束 rn OV7670_RCK=1; rn for(j=0;j<76800;j++)rn rn GPIOB->CRL=0X88888888; rn OV7670_RCK=0; rn color=OV7670_DATA; //读数据rn OV7670_RCK=1; rn color<<=8; rn OV7670_RCK=0;rn color|=OV7670_DATA; //读数据 rn OV7670_RCK=1; rn GPIOB->CRL=0X33333333; rn LCD_WR_DATA(color); rn rn OV7670_CS=1; rn OV7670_RCK=0; rn OV7670_RCK=1; rn EXTI->PR=1<<15; //清除LINE8上的中断标志位rn ov_sta=0; //开始下一次采集rn ov_frame++; rn LCD_Scan_Dir(DFT_SCAN_DIR); //恢复默认扫描方向 rn rn rnint main(void)rn rn u8 i; rn Stm32_Clock_Init(9); //系统时钟设置rn uart_init(72,9600); //串口初始化为9600rn delay_init(72); //延时初始化 rn OV7670_Init(); rnrn LED_Init(); //初始化与LED连接的硬件接口rn LCD_Init(); //初始化LCDrn rn if(lcddev.id==0X6804) //强制设置屏幕分辨率为320*240.以支持3.5寸大屏rn rn lcddev.width=240;rn lcddev.height=320; rn rn usmart_dev.init(72); //初始化USMART rn rn POINT_COLOR=WHITE;//设置字体为红色 rn LCD_ShowString(60,50,200,200,16,"Mini STM32"); rn LCD_ShowString(60,70,200,200,16,"OV7670 TEST"); rn LCD_ShowString(60,90,200,200,16,"ATOM@ALIENTEK");rn LCD_ShowString(60,110,200,200,16,"2012/10/31"); rn LCD_ShowString(60,130,200,200,16,"Use USMART To Set!"); rn LCD_ShowString(60,150,200,200,16,"OV7670 Init..."); rn rn while(OV7670_Init())//初始化OV7670rn rn LCD_ShowString(60,150,200,200,16,"OV7670 Error!!");rn delay_ms(200);rn LCD_Fill(60,230,239,246,RED);rn delay_ms(200);rn rn LCD_ShowString(60,150,200,200,16,"OV7670 Init OK");rn delay_ms(1500); rn Timerx_Init(10000,7199); //TIM3,10Khz计数频率,1秒钟中断 rn EXTI15_Init(); //使能定时器捕获rn OV7670_Window_Set(10,174,240,320); //设置窗口 rn OV7670_CS=0; rn while(1)rn rn camera_refresh(); //更新显示 rn if(i!=ov_frame) //DS0闪烁.rn rn i=ov_frame;rn LED0=!LED0;rn rn rn rnrnrnrn代码如上,可是仿真出来的结果却很失败。显示屏上出现了一层五颜六色的条纹在闪烁。我想知道莫非是显示屏的问题?请大家先看看代码。谢过!rnrnrnrnrnrnrnrnrnrnrnrnrn
关于定时任务重复执行的问题
做了一个指定每天凌晨2点执行的定时任务 第一次做法是 判断项目的启动时间, 如果2点后启动的, 就初始先跑一边流程, 在设置当天2点的定时任务,后来发现如果定时任务设置当天2点开始的话,2点后启动项目的话就会在启动项目的直接执行定时任务一次, 然后就把2点后启动的初始流程给删了。 然后遇到了:如果项目的启动时间在定时任务设置的开始时间之后。 等到第二天的定时任务执行的时候就变成了两个定时任...
关于STM32下的问题
呃,是这样,在TIM2 中断函数中有段处理程序,请问怎么在处理完了后,让程序自行关闭TIM2中断,我在那个中断函数中直接rnTIM_Cmd(TIM2, DISABLE);rn好像把我程序跑飞掉了rn谢谢
关于STM32的延时问题
最近一直在搞一辆智能小车,用STM32单片机驱动,往上面加了很多外设,外型如下: 今天下午打算在LCD显示一个温度,却发现怎么都显示不了,也找不出原因,还好我们公司的郑工帮我看出了问题,让我顺利改过来成功的显示在LCD上,毕竟比我先进公司的工程师还是要有经验一些。o(︶︿︶)o 唉,就是定时计数器少加了一个0,于是延时慢了10倍,导致温度传感器时序没...
关于spring4+quartz2执行定时任务的问题
之前用的是spring3.0.5+quartz-1.6.5,以下是spring的xml代码:   &amp;lt;!--周期数据定时入库--&amp;gt; &amp;lt;bean id=&quot;allDataStorage&quot;    class=&quot;org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean&quot; &amp;gt; &amp;lt;pro...