周期中断定时器(PIT)
- 格式:ppt
- 大小:814.50 KB
- 文档页数:15
飞思卡尔MC9S12XS128技术手册(AD转换部分)英文资料:飞思卡尔MC9S12XS256RMV1官方技术手册1.1 XS12系列单片机的特点XS12系列单片机特点如下:·16位S12CPU—向上支持S12模糊指令集并去除了其中的MEM, WAV, WAVR, REV, REVW 五条指令;—模块映射地址机制(MMC);—背景调试模块(BDM);·CRG时钟和复位发生器—COP看门狗;—实时中断;·标准定时器模块—8个16位输入捕捉或输出比较通道;;—16位计数器,8位精密与分频功能;—1个16位脉冲累加器;·周期中断定时器PIT—4具有独立溢出定时的定时器;—溢出定时可选范围在1到2^24总线时钟;—溢出中断和外部触发器;·多达8个的8位或4个16位PWM通道—每个通道的周期和占空比有程序决定;—输出方式可以选择左对齐或中心对其;—可编程时钟选择逻辑,且可选频率范围很宽;·SPI通信模块—可选择8位或16位数据宽度;—全双工或半双工通信方式;—收发双向缓冲;—主机或从机模式;—可选择最高有效为先输出或者最低有效位先输出;·两个SCI串行通信接口—全双工或半双工模式·输入输出端口—多达91个通用I/O引脚,根据封装方式,有些引脚未被引出;—两个单输入引脚;·封装形式—112引脚薄型四边引线扁平封装(LQFP);—80引脚扁平封装(QFP);—64引脚LQFP封装;·工作条件—全功率模式下单电源供电范围3.15V到5V;—CPU总线频率最大为40MHz—工作温度范围–40 C到125 C第十章模拟—数字转换10.1 介绍ADC12B16C是一个16通道,12位,复用方式输入逐次逼近模拟—数字转换器。
ATD的精度由电器规格决定。
10.1.1 特点·可设置8位、10位、12位精度·在停止模式下,ATD转换使用内部时钟·转换序列结束后自动进入低耗电模式·可编程采样时间·转化结果可选择左对齐或右对齐·外部触发控制·转换序列结束后产生中断·模拟输入的16个通道为复用方式·可以选择VRH、VRL、 (VRL+VRH)/2特殊转换方式·转换序列长度1到16·可选择连续转换方式·多通道扫描·任何AD通道均可配置外部触发功能,并且可选择4种额外的触发输入。
msi主板设置一、SETTINGS(芯片组功能设置)点击“SETTING”按钮进入功能设置。
SETTINGS共有四项:System Status(系统状态),Advanced(高级),Boot(启动),Save & Exit(保存&退出)。
1-1、System Status(系统状态)系统状态显示出系统连接的SATA设备(硬盘、光驱、SSD等存储设备),处理器信息,BIOS版本,安装的内存容量。
日期和时间需要在这里设置。
黄色文字表示可对该项设置,一般用+/-键改变数值,修改完回车自动移到下一项,或者用箭头键移动。
1-2、Advanced(高级)有关主板功能的重要设置都在这个Advanced(高级)里面。
这十项设置都是有二级设置菜单。
1-2-1、PCI Subsystem Setting(PCI子系统设置)这里有2项设置,一个是PCIE GEN3,一个是PCI Latency Timer。
1-2-1-1、PCIE GEN3就是开启/关闭第三代PCIE。
设置项有Disabled(关闭)/Enabled(开启),默认是关闭。
其实,PCIE总线是3.0还是2.0首先要看硬件,硬件包括PCIE控制器和主板上PCIE槽旁边的一排电容。
PCIE总线控制器整合在CPU里, SNB处理器的PCIE 总线控制器是PCIE2.0,IVB处理器的是PCIE3.0。
PCIE3.0主板上的PCIE槽旁边的一排电容容量是PCIE2.0槽的2倍。
PCIE3.0兼容PCIE2.0。
因此如果使用SNB CPU,PCIE是2.0,使用IVB就支持PCIE3.0。
当然还与显卡有关,要看显卡的PCIE接口是3.0还是2.0。
BIOS的这项设置是画蛇添足。
1-2-1-2、PCI Latency Timer选项是设置PCI总线延迟的。
延迟时间以PCI总线的时钟周期为计算单位。
可以设置的延迟有32/64/96/128/160/192/224/248 PCI Bus Clocks。
linux内核] Linux内核的时钟中断机制摘要:本文主要从内核实现的角度分析了Linux 2.4.0内核的时钟中断、内核对时间的表示等。
本文是为那些想要了解Linux I/O子系统的读者和Linux驱动程序开发人员而写的。
关键词:Linux、时钟、定时器申明:这份文档是按照自由软件开放源代码的精神发布的,任何人可以免费获得、使用和重新发布,但是你没有限制别人重新发布你发布内容的权利。
发布本文的目的是希望它能对读者有用,但没有任何担保,甚至没有适合特定目的的隐含的担保。
更详细的情况请参阅GNU通用公共许可证(GPL),以及GNU自由文档协议(GFDL)。
你应该已经和文档一起收到一份GNU通用公共许可证(GPL)的副本。
如果还没有,写信给: The Free Software Foundation, Inc., 675 Mass Ave, Cambridge,MA02139, USA欢迎各位指出文档中的错误与疑问。
前言时间在一个操作系统内核中占据着重要的地位,它是驱动一个OS内核运行的“起博器”。
一般说来,内核主要需要两种类型的时间:1. 在内核运行期间持续记录当前的时间与日期,以便内核对某些对象和事件作时间标记(timestamp,也称为“时间戳”),或供用户通过时间syscall进行检索。
2. 维持一个固定周期的定时器,以提醒内核或用户一段时间已经过去了。
PC机中的时间是有三种时钟硬件提供的,而这些时钟硬件又都基于固定频率的晶体振荡器来提供时钟方波信号输入。
这三种时钟硬件是:(1)实时时钟(Real Time Clock,RTC);(2)可编程间隔定时器(Programmable Interval Timer,PIT);(3)时间戳计数器(TimeStamp Counter,TSC)。
7.1 时钟硬件7.1.1 实时时钟RTC自从IBM PC AT起,所有的PC机就都包含了一个叫做实时时钟(RTC)的时钟芯片,以便在PC机断电后仍然能够继续保持时间。
51单片机中断系统详解51 单片机中断系统详解(定时器、计数器)51 单片机中断级别中断源INT0---外部中断0/P3.2 T0---定时器/计数器0 中断/P3.4 INT1---外部中断1/P3.3 T1----定时器/计数器1 中断/P3.5 TX/RX---串行口中断T2---定时器/计数器 2 中断第5 最低4 5 默认中断级别最高第2 第3 第4 序号(C 语言用) 0 1 2 3 intrrupt 0中断允许寄存器IE位序号符号位EA/0 ------ET2/1 ES ET1 EX1 ET0 EX0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 EA---全局中允许位。
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
EA=0,关闭全部中断。
-------,无效位。
ET2---定时器/计数器2 中断允许位。
ET2=1, 打开T2 中断。
ET2=0,关闭T2 中断。
关,。
ES---串行口中断允许位。
关,。
ES=1,打开串行口中断。
关,。
ES=0,关闭串行口中断。
关,。
ET1---定时器/计数器1 中断允许位。
关,。
ET1=1,打开T1 中断。
ET1=0,关闭T1 中断。
EX1---外部中断1 中断允许位。
EX1=1,打开外部中断1 中断。
EX1=0,关闭外部中断1 中断。
ET0---定时器/计数器0 中断允许位。
ET0=1,打开T0 中断。
EA 总中断开关,置1 为开;EX0 为外部中断0 (INT0) 开关,。
ET0 为定时器/计数器0(T0)开EX1 为外部中断1(INT1)开ET1 为定时器/计数器1(T1)开ES 为串行口(TX/RX)中断开ET2 为定时器/计数器2(T2)开ET0=0,关闭T0 中断。
EX0---外部中断0 中断允许位。
EX0=1,打开外部中断0 中断。
EX0=0,关闭外部中断0 中断。
中断优先级寄存器IP位序号位地址------PS/0 PT1/0 PX1/0 PT0/0 PX0/0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 -------,无效位。
【转】XS128之PIT为了更好地学习和交流,DABAO在学习之余写一下自己的学习笔记。
在XS128中,与定时计算有关的模块有PIT、TIM。
TIM主要包括8个通道的输入捕捉/输出比较,和一个脉冲累加器。
PIT是一个模数递减计数器。
首先给计数寄存器设定一个初值,每经过一个总线周期,计数器进行一次减一操作,当计数器自减溢出时,触发中断。
因为总线周期是已知的,即可以通过计数器自减实现定时。
现在主要写一下PIT。
下图为PIT的模块图:PIT模块没有对应的外接引脚。
PIT的寄存器有:PITCFLMT、PITFLT、PITCE、PITMUX、PITINTE、PITTF、PITMTLD0、PITMTLD1、PITLD0、PITCNT0、PITLD1、PITCNT1、PITLD2、PITCNT2、PITLD3、PITCNT3。
下面逐个说明其用法:PITCFLMT: 该寄存器的第七位PITE是PIT模块的使能位。
置1,则使能,即此模块可以用了。
第六位PITSWAI,置1,则PIT模块在等待模式下不可用。
第五位为PITFRZ,置1,则PIT在冻结模式(freeze)下不可用。
第一,第零位为PFLMT1、PFLMT0,其置1,能使对应的8位数据寄存器PITMTLD1、PITMTLD0中的数据马上进入计数器。
PITFLT:低四位(PFLT0~PFLT3)有效,相应位置1,能使相应的16位数据寄存器PITLD0~PITLD3中的数据马上进入计数器。
PITCE: 低四位(PCE0~PCE3)有效,位置,则使能相应的计数通道(共四个通道)。
PITMUX: 低四位(PMUX0~PMUX3)有效。
相应通道的时基选择。
如模块图如示,每个通道由一个8位计数块(相应数据寄存器为PITMTLD)和一个16位计数模块(相应数据寄存器为PITLD)组成。
PITMUX相应的位上置0时,则8位计数模块0与相应的16位计数模块组合计数。
置1,则8位计数模块1与相应的16位计数模块组合计数。
定时测量timing measurement内核显式实时时钟RTC 时间标记计数器TStampC 内核跟踪当前时间可编程间隔定时器(PIntervalT)内核编程可发固定频率中断周期性中断RTC:独立于CPU和所有芯片CMOS RAM RTC集成在一个芯片。
在IRQ8发周期性中断,2hz-8192hz,可编程达特定值激活IRQ8总线(闹钟)、dev/rtc内核0x70 0x71I/O端口存取RTC /sbin/clockTSC 寄存器,汇编指令rdtsc读,时钟节拍频率400MHZ 2.5ns+1 b*s=1比PIT精确,系统初始化确定时钟信号频率,calibrate_tsc()算出PIT 发timer interrupt通知内核。
内核检查正在运行的进程是否该被抢占。
短节拍好,但内核态耗时大定时中断处理程序:更新启动后时间(PIT)TIMER.BH TQUEUE_BH: 更新时间日期确定当前进程CPU运行时间,超分配则抢占,更新资源使用统计数检查每个软定时器时间间隔已到?调用函数时间保持函数timekeeping:保持当前最新时间2计算当前秒内的微妙数。
有TSC,变量指向使用TSC的函数。
do_gettimeofday()计算,do_fast_gettimeoffset()微秒数else do_normal_gettime()do_get_fast_time变量存放的指针指向合适函数do_slow_gettimeoffset()time_init()将变量指向正确函数,设置IRQ0对应中断门CPU有TSC:1 执行rdtsc,存在last_tsc_low2读8254芯片内部振荡器状态,delay_at_last_interrupt=计算定时中断发生和中断服务例程执行间延迟调用do_timer_interrupt() 1 调用do_timer() 关中断运行更新jiffies:启动以来的节拍数。
内核初始化=0,中断+1lost_ticks:xtime(当前时间近似值)最后更新以来的节拍数lost_ticks_system:。