定时器

4种java定时器

巧了我就是萌 提交于 2020-03-19 23:04:10
import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class TimeTest { public static void main(String[] args) { timer1(); //timer2(); //timer3(); //timer4(); } // 第一种方法:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date time) public static void timer1() { Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("-------设定要指定任务--------"); } }, 2000);// 设定指定的时间time,此处为2000毫秒 } // 第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行 // schedule(TimerTask task, long delay, long period) public static void timer2

《嵌入式系统》 |(六) 定时器(计数器) 知识梳理

自古美人都是妖i 提交于 2020-03-17 09:44:19
系列索引 《嵌入式系统》 | 嵌入式系统 重点知识梳理 目录 嵌入式系统中延时实现的方式及其优缺点 STM32 F103中的基本定时器、通用定时器及高级定时器的区别(包括所在总线及功能区别) 定时器的时钟源有哪些? 定时器的工作模式 PWM的作用及其实现方式 定时器中预分频、自动重装载、捕获/比较寄存器的初始值的设置 定时器延时时间的计算 定时器相关库函数的使用(arr,psc及ccr值的设置,定时器中断的使用) 嵌入式系统中延时实现的方式及其优缺点 嵌入式系统中延时的实现 1. 完全硬件实现 使用 电容及电阻 即可完成特定的 振荡延时 作用 延时时间无法改变 2. 纯软件方式(不精确,占用CPU) 3. 微控制器中的可编程定时/计数器 STM32 F103中的基本定时器、通用定时器及高级定时器的区别(包括所在总线及功能区别) 功能: 计数 = 基本定时器 + 输入输出,捕获 = 通用定时器 + 刹车信号输入,7路信号互补输出 = 高级定时器 定时器的时钟源有哪些? 内部时钟(系统时钟),来自于输入为APB1或APB2的一个倍频器 外部时钟模式 1: 外部输入引脚 ;2:外部触发输入ETR 内部引脚 其他定时器 定时器的工作模式 计数模式(以普通定时器为例) 输出比较模式 输入捕获模式 先设置输入捕获为上升沿检测,记录发生上升沿时TIMx_CNT的值。然后配置捕获信号为下降沿捕获

定时器

泄露秘密 提交于 2020-03-16 09:01:09
  本篇文章主要分别讲一下setInterval,setTimeout,setImmediate,requestAnimationFrame的使用及注意事项。   一、 setInterval     重复执行定时器,每隔一段时间就会去执行指定的函数。重复的执行。     语法:如下     参数:要执行的函数:当时间到了就会去执行这里的代码        时间:间隔的时间,单位是ms。1s=1000ms。当第二个参数省略的时候,这个参数为0. <script> setInterval(function () { 要执行的代码 }, 时间) </script>     事实上,除了前面两个参数,setInterval()方法还允许添加更多的参数,但是这个只有在ie9以上才支持。 <script> setInterval(function (a, b) { console.log(a + b) //2 }, 2000, 1, 1) </script>   二、setTimeout     延迟执行定时器:当延迟时间到达后,会执行指定的函数,这个函数只执行一次。     语法:如下 <script> setTimeout(function(){ 当时间到达后,会执行这里的代码 },时间); </script>     setTimeout的用法与setInterval完全一致

jQuery60定时器

泪湿孤枕 提交于 2020-03-09 10:08:35
1、HTML <div id='Code'></div>    2、JS var wait=60; $('#Code').text(wait+'s');timer = setInterval(function(){ if(wait==0){ $('#Code').text('点击获取'); clearInterval(timer);//清除定时器 }else{ wait--; $('#Code').text(wait+'s'); } },1000);    var wait=60;$('#AutoCode').text(wait+'s');timer = setInterval(function(){ if(wait==0){ $('#AutoCode').text('获取验证码'); clearInterval(timer) }else{ wait--; $('#AutoCode').text(wait+'s'); }},1000); 来源: https://www.cnblogs.com/aididiao/p/12446763.html

7、Esp8266 硬件中断定时器器

☆樱花仙子☆ 提交于 2020-03-08 19:36:13
如果使用 NMI 中断源,且为自动填装的定时器,调用 hw_timer_arm 时参数 val 必须大于 100。 如果使用 NMI 中断源,那么该定时器将为最高优先级,可打断其他 ISR。 如果使用 FRC1 中断源,那么该定时器无法打断其他 ISR。 API 实验代码 定时500ms // LED初始化 void ICACHE_FLASH_ATTR LED_Init_JX ( void ) { PIN_FUNC_SELECT ( PERIPHS_IO_MUX_GPIO4_U , FUNC_GPIO4 ) ; // GPIO4设为IO口 GPIO_OUTPUT_SET ( GPIO_ID_PIN ( 4 ) , 1 ) ; // IO4 = 1 } // 硬件定时器中断回调函数【注意:中断函数前不要有"ICACHE_FLASH_ATTR"宏】 void HW_Timer_INT ( void ) // ②:硬件定时器中断回调函数 { F_LED = ! F_LED ; GPIO_OUTPUT_SET ( GPIO_ID_PIN ( 4 ) , F_LED ) ; // LED状态翻转 os_printf ( "\r\n--- HW_Timer_INT ---\r\n" ) ; // 进入硬件定时器中断回调函数标志 } void ICACHE_FLASH_ATTR user

页面中定义一个定时器,在哪个阶段清除

北城以北 提交于 2020-03-07 11:43:30
在页面 a 中写了一个定时器,比如每隔一秒钟打印一次 1,当我点击按钮进入页面 b 的时候,会发现定时器依然在执行,这是非常消耗性能的。 解决方案一:在组件销毁前清除 mounted(){ this.timer = setInterval(()=>{ console.log(1) },1000) }, beforeDestroy(){ clearInterval(this.timer) } 它需要在这个组件实例中保存这个 timer,如果可以的话最好只有生命周期钩子可以访问到它。这并不算严重的问题,但是它可以被视为杂物。 解决方案二(推荐): mounted(){ const timer = setInterval(()=>{ console.log(1) },1000) this.$once('hook:beforeDestroy',()=>{ clearInterval(timer) }) } 使用了这个策略,每个新的实例都程序化地在后期清理它自己 来源: oschina 链接: https://my.oschina.net/u/560237/blog/3189468

Linux设备驱动程序学习(10) -时间、延迟及延缓操作

僤鯓⒐⒋嵵緔 提交于 2020-03-06 08:46:15
度量时间差 时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据 HZ 值来设定,HZ 是一个体系依赖的值,在 <linux/param.h>中定义或该文件包含的某个子平台相关文件中。作为通用的规则,即便如果知道 HZ 的值,在编程时应当不依赖这个特定值,而始终使用HZ。对于当前版本,我们应完全信任内核开发者,他们已经选择了最适合的HZ值,最好保持 HZ 的默认值。 对用户空间,内核HZ几乎完全隐藏,用户 HZ 始终扩展为 100。当用户空间程序包含 param.h,且每个报告给用户空间的计数器都做了相应转换。对用户来说确切的 HZ 值只能通过 /proc/interrupts 获得:/proc/interrupts 的计数值除以 /proc/uptime 中报告的系统运行时间。 对于ARM体系结构:在<linux/param.h>文件中的定义如下: #ifdef __KERNEL__ # define HZ CONFIG_HZ /* Internal kernel timer frequency */ # define USER_HZ 100 /* 用户空间使用的HZ,User interfaces are in "ticks" */ # define CLOCKS_PER_SEC (USER_HZ) /* like times() */ #else # define

并发编程(十五)——定时器 ScheduledThreadPoolExecutor 实现原理与源码深度解析

怎甘沉沦 提交于 2020-03-05 01:50:12
在上一篇线程池的文章 《并发编程(十一)—— Java 线程池 实现原理与源码深度解析(一)》 中从ThreadPoolExecutor源码分析了其运行机制。限于篇幅,留下了ScheduledThreadPoolExecutor未做分析,因此本文继续从源代码出发分析ScheduledThreadPoolExecutor的内部原理。 类声明 1 public class ScheduledThreadPoolExecutor 2 extends ThreadPoolExecutor 3 implements ScheduledExecutorService { ScheduledThreadPoolExecutor继承了ThreadPoolExecutor,实现了ScheduledExecutorService。因此它具有ThreadPoolExecutor的所有能力。所不同的是它具有定时执行,以周期或间隔循环执行任务等功能。 这里我们先看下ScheduledExecutorService的源码: ScheduledExecutorService 1 //可调度的执行者服务接口 2 public interface ScheduledExecutorService extends ExecutorService { 3 4 //指定时延后调度执行任务,只执行一次,没有返回值 5

STM32-通用定时器

走远了吗. 提交于 2020-03-04 17:57:07
12.1Stm32f4xx定时器的介绍 12.1.1STM32F407定时器的介绍 一共有14个定时器 1.基本定时器(2个):定时 2.通用定时器(10个):具有基本定时器的功能,还有输入捕获和输出比较(PWM)。 3.高级定时器(2个):具有通用定时器的功能,拥有互补输出(死区插入)功能。 12.1.2PWM的介绍 PWM是什么: 具有一定频率的脉冲宽度,就是一个高低电平。 占空比:高电平占整个周期的比例。 PWM的应用: 七彩灯,直流电机,快充等 窗帘实验:当窗帘被全部打开,整个窗户都被遮住,此时室内的光线最弱;当窗帘被慢慢拉起来,室内的光线慢慢变亮,整个窗帘都被收起来的时候,室内光线最强。这就是一种脉冲宽度调节。 12.2通用定时器的特征 ● 16 位自动重载递增计数器(属于中等容量器件) ● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 和 65536 之间 ● 多达 2 个独立通道,可用于: — 输入捕获 — 输出比较 — PWM 生成(边沿对齐模式) — 单脉冲模式输出 ● 使用外部信号控制定时器且可实现多个定时器互连的同步电路 ● 发生如下事件时生成中断: — 更新:计数器上溢、计数器初始化(通过软件或内部触发) — 触发事件(计数器启动、停止、初始化或者由内部触发计数) — 输入捕获 — 输出比较 来源: 51CTO

多线程 定时器 Timer TimerTask

陌路散爱 提交于 2020-03-04 10:06:00
定时器是一种特殊的多线程,使用Timer来安排一次或者重复执行某个任务 1 package org.zln.thread; 2 3 import java.util.Date; 4 import java.util.Timer; 5 import java.util.TimerTask; 6 7 /** 8 * Created by coolkid on 2015/6/21 0021. 9 */ 10 public class TestTimerTask extends TimerTask { 11 @Override 12 public void run() { 13 System.out.println(new Date()); 14 } 15 16 public static void main(String[] args) { 17 Timer timer = new Timer(); 18 TestTimerTask testTimerTask = new TestTimerTask(); 19 timer.schedule(testTimerTask,1000,1000); 20 21 } 22 } E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\thread\TestTimerTask