




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
言归正传,开始讲PIT,讲PIT,我准备先简单讲讲寄存器,之前不讲主要是基本上买的到的书都是DG128的,里面关于IO口的寄存器和PWM的寄存器都是完全可以照搬的,而这一章的东西照搬是要出问题的。 核心内容就在这张图上: 相信大家都明白总线的概念,在图中可以看到6个定时器模块,Micro Timer 0、Micro Timer 1、Timer 0、Timer 1、Timer 2、Timer 3,其中前两个是8位的,后四个是16位的。从图中可以看出PIT模块是以总线时钟(Bus Clock)为基准时钟的,总线时钟通过8位Micro Timer 0和Micro Timer 1倍频形成两个基时钟,即Micro Timer Base 0和Micro Timer Base 1,这两个基时钟通过16位Timer给PIT提供时钟(通过寄存器PITMUX设置)。 原理讲完了,其实相对于PIT模块是一个24位的定时器(51单片机最多也就16位),这个计数范围还是蛮大的。 下面是一些寄存器的解释,解释完还是看代码吧。 S12PIT24B4CV1是一个模数递减计数器。首先给计数寄存器设定一个初值,每经过一个总线周期,计数器进行一次减一操作,当计数器自减溢出时,触发中断。因为总线周期是已知的,即可以通过计数器自减实现定时。 在XS128PIT模块中,需要用到得是如下几个寄存器。 1)、PIT Contorl and force Lad Micro Timer Register(PITCFLMT) 该寄存器用于PIT模块的使能设置和工作方式设置。通常设置该寄存器中的PITE为即可,即PITCFLMT_PITE=1,使PIT使能。 2)、PIT Channel Enable Register(PITCE) 该寄存器用于对PIT模块中的4个通道使能进行设置。如果使用某个通道时,对对应位进行置一即可,即PITCE_PCEx=1,其中x代表通道序号,为03。 3)、PIT Micro Timer Load Register 0 to 1 (PITMTLD0-1) 该寄存器用于设置PIT模块中的8位计数器初值,以实现24位的计数。设定值为0到255范围。 4)、PIT Load Register 0 to 3(PITLD0-3) 该寄存器用于设置PIT模块中的16位计数器初值,和8位计数器配合而成24位计数器。设定值范围0-65535。 5)、PIT Multiplex Register(PITMUX) 该寄存器对定时器通道的8位时基进行选择。因为8位计数器只有两个,所以在将8位计数器和16位计数器连接时,可以选择不同的8位时基。 当设置为0时,对应通道选择时基0;置一时,对应通道选择时基1。 如PITMUX_PMUX0=1为通道0选择时基1。 6)、PIT Interrupt Enable Register(PITINTE) 该寄存器为中断使能寄存器,为不同的PIT通道中断使能。设定为0时,相应通道中断禁止。置一时,相应通道使能。 如PITINTE_PINTE0=1时,PIT通道0定时中断使能,当计数器递减溢出时,申请中断。 7)、PIT Time-Out Flag Register(PITTF) 该寄存器为溢出标志位,当某一通道的8位计数器和16位计数器递减到0时,该位置一。给改位写1则清除该标志位。 可以通过查询该位来判断定时是否完成。 代码/*Code Warrior 5.0Target : MC9S12XS128Crystal: 16.000Mhz by:庞辉芜湖联大飞思卡尔项目组 */void PIT_Init(void) PITCFLMT_PITE=0;/关闭PIT/微定时器的装载寄存器 PITMTLD0= 80-1;/8位定时器初值设定。80分频,在80MHzBusClock下,为0.1MHz,即1us/PITMTLD1= 160-1;/8位定时器初值设定,160分频,在16MHz的总线时钟频率下,为0.1MHz,即10us/定时器的装载寄存器 PITLD0= 100 - 1 ;/16位定时器初值设定。PITTIME*0.01MS,定时100 * 0.001ms = 0.1ms PITLD1= 20000 - 1 ;/定时50000*0.001ms = 20ms PITCE_PCE0=1;/使能通道0 PITCE_PCE1=1;/使能通道1 PITMUX_PMUX0=0;/0:相应16位定时器与微时基0连接/PITMUX_PMUX1=1;/1:相应16位定时器与微时基1连接 PITINTE_PINTE0=1;/开通PIT0定时器的溢出中断 PITINTE_PINTE1=1;/开通PIT1定时器的溢出中断PITCFLMT_PITE=1;/使能PIT 以上代码一次开通了2路PIT,即PIT0和PIT1,初始化之后主要写上相对应的中断代码就可以了。 如: 代码/*Code Warrior 5.0Target : MC9S12XS128Crystal: 16.000Mhz by:庞辉芜湖联大飞思卡尔项目组 */#pragma CODE_SEG _NEAR_SEG NON_BANKED/指示该程序在不分页区void interrupt66 PIT0(void) /相应代码 PITTF=0x01;/清中断标志位 #pragma CODE_SEG DEFAULT#pragma CODE_SEG _NEAR_SEG NON_BANKED/指示该程序在不分页区void interrupt67 PIT1(void) /相应代码 PITTF=0x02;/清中断标志位 #pragma CODE_SEG DEFAULT 这里要注意两个地方: 1.首先两路PIT同时使用时,在中断函数里清中断标志位一定要使用如上方面还不是像这样PITTF_PTF0 = 1; 不然两路PIT其实只有1路在工作。 2.一旦PIT中断初始化使能,那
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度专业农产品集市摊位租赁经营合同
- 2025年度汽车抵押融资平台服务协议
- 2025版国际贸易保险合同范本下载
- 分布式光伏与建筑一体化2025年市场推广挑战与技术突破创新路径研究报告
- 2025版教育培训机构信息服务合同范本
- 2025碧桂园物业用房施工与物业服务质量保证合同
- 2025年农业循环经济菜园大棚承包与资源利用合同
- 2025年度婚纱摄影作品居间代理服务合同
- 2025年度租赁合同样本(含特殊条款定制服务)
- 2025电梯品牌代理商授权与区域市场管理合同范本
- 2024云南师范大学辅导员招聘笔试真题
- 2025年广省中考作文《走到田野去》写作指导及范文
- 2025年山东省中考数学试卷(含答案逐题解析)
- 慢阻肺非肺部手术麻醉管理策略
- 一例ICD置入患者的护理查房
- 2025至2030年中国露点传感器行业市场研究分析及投资前景规划报告
- 护理术中配合操作规范
- 孩子改姓改名协议书
- 膜结构车棚安装合同协议
- 建筑垃圾清运服务方案投标文件(技术方案)
- 2025河南航空港发展投资集团有限公司社会招聘11人笔试参考题库附带答案详解
评论
0/150
提交评论