定时器

STM32 SysTick定时器应用【worldsing笔记】

无人久伴 提交于 2019-12-31 19:58:32
SysTick是CM内核独立的定时器,时钟可以用内核内部的,也可以用芯片厂家(ST)的时钟,参考《Cortex-M3权威指南》的第13章: 另外也可以考《STM32F10xxx Cortex-M3 programming manual.pdf》第4章CM3系统外设,从手册来看,ST应该只提供了内核外部时钟,而外部时钟又分成两种:HCLK/8 和 HCLK, ST官方提供了库直接可以操作SYSTICK,但不同的版本使用起来有些区别: 在V2.0的版本中对SysTick的操作是使用的stm32f10x_systick.c和stm32f10x_systick.h void SysTick_CLKSourceConfig(u32 SysTick_CLKSource); void SysTick_SetReload(u32 Reload); void SysTick_CounterCmd(u32 SysTick_Counter); void SysTick_ITConfig(FunctionalState NewState); u32 SysTick_GetCounter(void); FlagStatus SysTick_GetFlagStatus(u8 SysTick_FLAG); 但是在V3.0中取消了stm32f10x_systick.c和stm32f10x_systick

TI - MCU - MSP430使用指南13 -> Timer定时器模块

牧云@^-^@ 提交于 2019-12-30 20:36:20
定时器,作为MCU最重要也是最基本的功能集成在每一个MCU中。随着MCU功能的日渐强大,定时器的功能也越来越强大,因此配置和使用起来也就比较麻烦,下面我们针对MSP430的Timer模块进行详细讲解,配合多种可以直接使用的例程,方便用户直接移植和深入理解。 首先,普及一下定时器知识:本质上就是一个计数器,可以由用户自定义计数的值,同时到达计数值后可以执行相应的动作,因此可以时间周期性动作,采集捕捉动作等,用于实时控制及多种功能实现。 MSP430 MCU中有三种定时器:Timer_A Timer_B Timer_D. 首先 Timer_D定时器基本没有集成在MCU中,很少很少使用,是一个高分辨率的定时器,因此我们不做讲解(内部寄存器和使用与Timer_A/B很是相似,如果有用户用到,可以直接参考,如果有人需要可以留言,我会开贴再次单独讲解Timer_D)。 因此本次内容主要讲解一下Timer_A和Timer_B定时/计数器。首先先说一下MSP430 MCU内部Timer的主要功能: 16位定时/计数器,支持四种工作模式/计数模式:STOP UP Continuous UP/DOWN 输入捕捉功能 输出比较功能,即PWM波功能 主要就这三种功能,用户在使用过程中也就是这三种功能,然后Timer有一些自己的特点: 时钟源可以选择 异步输入,输出所存 中断向量寄存器等

接口与总线 考点整理

删除回忆录丶 提交于 2019-12-29 23:11:06
说明 以下内容为个人整理,答案也是个人回答,不一定对,所以你对答案有任何问题,都欢迎与我讨论。 Q01:51单片机P0、P1、P2、P3口功能作用? 答: P0可做地址口的低8位也可以做数据口和I/O口 P1可做普通的I/O口 P2除了做I/O口,也是作为地址口的高8位(总共16位) P3 既可以是普通IO口,也可以是外部中断、定时、外部输入的端口 Q02:当串口发送一个数据或接收数据时,哪两个位会置位? 答: 接收数据时,RI 会置位 发送数据时,TI 会置位 Q03:81单片机的累加器是什么? 答: ACC Q04:当晶振频率为12MHz,定时器的频率为多少? 答: 频率为1Mhz 说明: 机器频率 = 晶振频率/12 Q05:LED的显示分为几种? 答: 两种,动态扫描和静态扫描 说明: 动态扫描中LED的调度是放在定时器中 Q06:51单片机内存划分 答: 低128个字节 从00H~1FH(32字节):寄存器区,四组寄存器区,一组有8个寄存器 从20H~2FH(16字节 128位):位寻址区 剩下:普通内存 高128个字节 特殊功能寄存器 Q07:ex0、ex1、et0的含义 答: ex0 = 1; //允许外部中断0 ex1 = 1; //允许外部中断1 et0 = 1; //允许定时器0中断 1 2 3 说明: 在这里插入图片描述 上图为IE(中断允许寄存器) EA

[iOS Animation]-CALayer 定时器动画

雨燕双飞 提交于 2019-12-29 22:25:10
定时器的动画 我可以指导你,但是你必须按照我说的做。 -- 骇客帝国 在第10章“缓冲”中,我们研究了 CAMediaTimingFunction ,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基于定时器的动画。 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点。一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只是看起来像是做了运动。 我们之前提到过iOS按照每秒60次刷新屏幕,然后 CAAnimation 计算出需要展示的新的帧,然后在每次屏幕更新的时候同步绘制上去, CAAnimation 最机智的地方在于每次刷新需要展示的时候去计算插值和缓冲。 在第10章中,我们解决了如何自定义缓冲函数,然后根据需要展示的帧的数组来告诉 CAKeyframeAnimation 的实例如何去绘制。所有的Core Animation实际上都是按照一定的序列来显示这些帧,那么我们可以自己做到这些么? NSTimer 实际上,我们在第三章“图层几何学”中已经做过类似的东西,就是时钟那个例子,我们用了 NSTimer 来对钟表的指针做定时动画

定时帧(基于定时器的动画 11.1)

我只是一个虾纸丫 提交于 2019-12-29 22:24:24
定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点。一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只是看起来像是做了运动。 我们之前提到过iOS按照每秒60次刷新屏幕,然后 CAAnimation 计算出需要展示的新的帧,然后在每次屏幕更新的时候同步绘制上去, CAAnimation 最机智的地方在于每次刷新需要展示的时候去计算插值和缓冲。 在第10章中,我们解决了如何自定义缓冲函数,然后根据需要展示的帧的数组来告诉 CAKeyframeAnimation 的实例如何去绘制。所有的Core Animation实际上都是按照一定的序列来显示这些帧,那么我们可以自己做到这些么? NSTimer 实际上,我们在第三章“图层几何学”中已经做过类似的东西,就是时钟那个例子,我们用了 NSTimer 来对钟表的指针做定时动画,一秒钟更新一次,但是如果我们把频率调整成一秒钟更新60次的话,原理是完全相同的。 我们来试着用 NSTimer 来修改第十章中弹性球的例子。由于现在我们在定时器启动之后连续计算动画帧,我们需要在类中添加一些额外的属性来存储动画的 fromValue , toValue , duration 和当前的 timeOffset (见清单11.1)。 清单11.1 使用 NSTimer

Win32编程day05 学习笔记

亡梦爱人 提交于 2019-12-28 22:07:12
一 鼠标消息 1 鼠标消息 1) 基本鼠标消息 WM_LBUTTONDOWN 左键按下 WM_LBUTTONUP 左键抬起 WM_RBUTTONDOWN 右键按下 WM_RBUTTONUP 右键抬起 WM_MOUSEMOVE 鼠标移动 2) 双击消息 WM_LBUTTONDBLCLK 左键双击 WM_RBUTTONDBLCLK 右键双击 3) 滚轮消息 WM_MOUSEWHEEL 鼠标滚轮 2 消息的参数 WPARAM - 当前键盘和鼠标按键状态,例如MK_CONTROL/MK_SHIFT,MK_LBUTTON等 LPARAM - 当前鼠标的坐标,坐标的原点是窗口客户区的左上角. X坐标 - LOWORD(lParam),低16位 Y坐标 - HIWORD(lParam),高16位 参数具体内容和具体鼠标消息有稍微不同. 3 消息的使用 3.1 基本鼠标消息,只需在窗口处理函数增加消息处理即可. 当消息来临,获取鼠标和按键状态.例如: case WM_MOUSEMOVE: { int nX = LOWORD(lParam); int nY = HIWORD(lParam); } 附:坐标转换的函数 ClientToScreen可以将鼠标坐标转换为屏幕的坐标. 3.2 双击消息 3.2.1 窗口注册要增加 CS_DBLCLKS 类型 wce.style = CS_DBLCLKS|..

java中的定时器

萝らか妹 提交于 2019-12-27 17:37:57
1:Timer 最底层定时器 转载:https://blog.csdn.net/zbx931197485/article/details/78721847 转载:https://blog.csdn.net/mazegong/article/details/77743805 2:spring 框架中使用的其他三种定时工具 转载:https://blog.csdn.net/lchq1995/article/details/78222528 (1) :spring task spring自带定时器使用实例: 转载:https://www.cnblogs.com/Jason-Xiang/p/6593329.html 在applicationContext中配置: <!-- 配置定时任务 --> <task:annotation-driven scheduler="qbScheduler" mode="proxy"/> <task:scheduler id="qbScheduler" pool-size="10"/> (2): package com.webservice.enquiryControler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework

runloop相关

人走茶凉 提交于 2019-12-26 02:55:51
runloop的相关类: CFRunLoop CFRunLoopMode CFRunLoopTimer CFRunLoopSource CFRunLoopObserve 每一个线程都对应一个runloop 主线程对应的runloop系统自动帮我们创建好了 子线程的runloop需要我们自己手动创建 关于mode: runloop每次只能在一种模式下运行: 模式model有5种:(前2种常用,后3种不怎么使用) NSRunLoopDefaultMode UITrackingRunLoopMode . . . 比如说:定时器设置在default模式下,如果滚动拖曳textview,(切换)启用的是UITrackingRunLoopMode ,此时添加在default模式下的定时器不起作用 为了在滚动模式下定时器也可以使用:可以把定时器添加在占位common模式下,或者把定时器分别添加在2个模式下,让2个模式中都有定时器,这样不管切换到哪个模式下,都可以正常使用 关于timer: NSTimer sche........这个方法启用的定时器可以直接使用 NSTimer*timer=[NSTimer timerin......] 创建对象产生的NSTimer对象,就必须添加到runloop的一种mode模式中才可以正常使用 关于source: source0:是指接收用户触摸的事件源

RT_Thread应用14—软件定时器2

孤者浪人 提交于 2019-12-24 18:00:47
第二十二章 软件定时器2 五、定时器超时函数 定时器最主要目的:是在经过 指定的定时时间 后,系统能 自动执行 用户设定的动作————超时函数。该函数在创建定时器的时候 需要用户自己定义 ,并且编写对应的执行代码。 定时器超时函数存在着两种情况: 超时函数在(系统时钟)中断上下文环境中执行(硬件定时器) 超时函数在线程的上下文环境中执行(软件定时器)。 硬件定时器超时在 systick 的 isr 中的实现 1 void rt_tick_increase ( void ) 2 { 3 struct rt_thread *thread ; 4 5 /* 系统时间全局变量自加 */ 6 ++ rt_tick ; 7 8 /* 检查时间片 */ 9 thread = rt_thread_self ( ) ; 10 11 -- thread- > remaining_tick ; 12 if ( thread- > remaining_tick == 0 ) { 13 /* 更改为初始化的时间 */ 14 thread- > remaining_tick = thread- > init_tick ; 15 16 /* 强制切换 */ 17 rt_thread_yield ( ) ; 18 } 19 20 /* 检查定时器时间 */ 21 rt_timer_check ( ) ; ( 1

BOM浏览器对象模型

好久不见. 提交于 2019-12-24 05:33:54
BOM概述 什么是BOM BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。 BOM由一系列相关的对象构成,并且每个对象都提供了很多方法和属性。 BOM缺乏标准,JavaScript 语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分。 DOM与BOM的对比 DOM BOM 文档对象模型 浏览器对象模型 DOM就是把 文档 当做一个 对象 来看待 把 浏览器 当做一个 对象 来看待 DOM的顶级对象是document BOM的顶级对象是window DOM主要学习的是操作页面元素 BOM学习的是浏览器窗口交互的一些对象 DOM是W3C标准规范 BOM是浏览器厂商在各自浏览器上定义的,兼容性较差 BOM的构成 BOM比DOM更大,它包含DOM window document location navigation screen history window对象是浏览器的顶级对象,它具有双重角色 它是JS访问浏览器窗口的一个接口 它是一个全局对象,定义在全局作用域中的变量,函数都会变成window对象的属性和方法。在调用的时候可以省略 window,前面学习的对话框都属于 window对象方法,如alert()、prompt()等。 注意