1、传统的定时器实现
- package cn.itcast.thread;
- import java.util.Date;
- import java.util.Timer;
- import java.util.TimerTask;
- public class TraditionalTimer {
- private static int count = 0;
- public static void main(String[] args) {
- //延迟2秒执行run方法中的内容
- final Timer timer = new Timer();
- timer.schedule(new TimerTask() {
- public void run() {
- System.out.println("haha");
- }
- }, 2000);
- //延迟2秒执行run方法中的内容,以后每间隔一秒去执行run方法
- timer.schedule(
- new TimerTask() {
- public void run() {
- System.out.println("hello java");
- }
- },
- 2000,
- 1000);
- //延迟2秒执行run方法中的内容,以后根据count的值判断是间隔2秒还是4秒去执行run方法
- System.out.println(new Date().getSeconds());
- class MyTimerTask extends TimerTask {
- public void run() {
- count ++;
- System.out.println(new Date().getSeconds());
- System.out.println("hello java!");
- if (count % 2 == 1) {
- timer.schedule(new MyTimerTask(), 4000);
- } else {
- timer.schedule(new MyTimerTask(), 2000);
- }
- }
- }
- TimerTask tt = new MyTimerTask();
- timer.schedule(tt, 2000);
- }
- }
2、利用jdk新特性来设计定时器
- package cn.itcast.thread;
- import java.util.Calendar;
- import java.util.concurrent.Executors;
- import java.util.concurrent.ScheduledExecutorService;
- import java.util.concurrent.TimeUnit;
- public class ModernTimerTest {
- public static void main(String[] args) {
- final ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
- timer.schedule(
- new Runnable() {
- public void run() {
- System.out.println(Calendar.getInstance().get(Calendar.SECOND));
- }
- },
- 1,
- TimeUnit.SECONDS
- );
- class MyTask implements Runnable {
- public void run() {
- System.out.println(" ----> " + Calendar.getInstance().get(Calendar.SECOND));
- timer.schedule(new MyTask(), 2, TimeUnit.SECONDS);
- }
- }
- timer.schedule(
- new MyTask(),
- 1,
- TimeUnit.SECONDS
- );
- }
- }
相关推荐
通过学习和实践这个实验,开发者能够掌握如何在STM32上高效地使用定时器、ADC和DMA,这对于嵌入式系统设计是非常有价值的。 总之,这个实验的核心是利用定时器中断触发ADC进行周期性的电压采样,然后通过DMA将采样...
当定时器1达到预设的计数值时,会产生一个中断请求,CPU暂停当前任务,转而执行中断服务程序,处理定时事件。 6. **main.c**: 这是实验的核心源代码文件,其中包含了初始化定时器1、设置中断、以及中断服务函数的...
2. **Keil C语言**:Keil C是为微控制器设计的C编译器,它扩展了标准C语言以适应嵌入式开发的特殊需求,如位操作、硬件中断等。Keil IDE提供了一个集成的开发环境,包括编辑器、编译器、链接器和调试器,方便开发者...
【定时器实验】MCS-51系列单片机中包含两个16位的定时器/计数器T0和T1,它们支持四种工作模式。...实验设计考虑了实际应用中的延时问题,如防抖动处理,以及如何通过组合不同工作模式来满足不同的定时和计数需求。
实验12的主题是关于"定时器1中断",这在STM32微控制器的开发中是一个重要的知识...了解并实践这个实验,开发者将深入理解STM32的中断机制和定时器的使用,这是进行实时系统设计、控制逻辑实现和高效能应用开发的基础。
MSP432P402r是一款由德州仪器(TI)推出的高效能、低功耗的嵌入式微处理器,广泛应用于各种嵌入式系统设计中。 **定时器A概述** 定时器A是MSP432中的一种多功能定时器,它可以被配置为计数器模式或者定时器模式。在...
Verilog 微波炉定时器设计是一种基于 Verilog hardware description language (HDL) 的微波炉定时器设计。该设计使用 Verilog 语言描述了微波炉定时器的数字电路,包括控制模块、数据装入模块和计时器模块。该设计的...
当某个事件发生时,CPU暂停当前执行的任务,转而去执行中断服务子程序。定时器T1中断就是一种基于时间的中断,每当定时器溢出时,就会触发中断请求。 4. **C语言编程**:KEIL是常用的51单片机开发环境,支持C语言...
总的来说,熟练掌握CC2530的ADC转换和定时器1的使用,对于设计高效、可靠的嵌入式系统至关重要。在实际项目中,结合具体的传感器和应用需求,灵活配置和优化这些功能,可以实现各种复杂的控制系统。通过不断的实践和...
STM32是一款基于ARM Cortex-M内核的微控制器,广泛应用于嵌入式系统设计中。在STM32中,ADC(Analog-to-Digital Converter,模数转换器)是核心的硬件模块之一,用于将模拟信号转换为数字信号,使得微控制器能够处理...
在定时器设计中,用户设定的定时时间需要转换成相应的二进制数值,以便进行后续的比较。为此,本文介绍的设计中使用了8线-3线优先编码器74LS148,以及将两片74LS148级联来构成16线-4线优先编码器,以实现从十进制到...
### 定时器在80C51单片机中的应用及汇编语言编程 #### 一、引言 在微控制器技术中,定时器是一个非常重要的组成部分,它被广泛应用于各种时间相关的控制任务中。80C51单片机作为一款经典的微控制器,在电子工程、...
- 中断处理:合理设计中断服务程序,避免中断处理时间过长影响系统性能。 - 定时器同步:在多定时器系统中,需要注意不同定时器之间的同步,避免产生不必要的干扰。 通过深入学习和实践,我们可以充分利用单片机...
《逻辑与数字系统设计:构建定时器》 在IT领域,逻辑与数字系统设计是电子工程和计算机科学的基础,它涉及到数字电路、布尔代数和硬件描述语言等关键概念。本篇文章将深入探讨如何利用Protues软件进行一个定时器的...
本资源包“60分钟定时器仿真Multism仿真资源+报告”提供了一个实用的60分钟定时器的Multism仿真模型,通过该模型,我们可以深入理解定时器的工作原理和设计方法。 Multism是一款强大的电路设计与仿真软件,它允许...
STM32是一款基于ARM Cortex-M内核的微控制器,广泛应用于嵌入式系统设计中。在STM32中,定时器是实现各种功能的核心组件,包括脉宽调制(PWM)输出。定时器3是STM32众多定时器资源中的一个,它具有四通道输出能力,...
本篇将详细讲解如何设计这样一个定时器,并探讨可能遇到的问题及解决方案。 首先,我们要理解定时器的基本原理。定时器是一种能够按照预设时间间隔触发事件的机制。在软件开发中,我们可以使用各种编程语言提供的...
由于文档内容不完整且存在OCR扫描错误,下面尝试根据现有信息提供一个30秒定时器设计的知识点概要。 首先,从OCR识别的零散信息中,我们可以观察到设计中使用了多个电子元件,比如电阻、电容、74HC74D触发器等。...
多通道秒定时器设计涉及微控制器编程与电子电路设计的综合应用。从给出的文档片段中可以看出,设计主要基于AT89C51微控制器,涉及74HC系列逻辑门芯片、LED指示灯、晶振等电子元件,并使用Keil C编程环境和Proteus...