《单片机飞思卡尔pit模块资料》由会员分享,可在线阅读,更多相关《单片机飞思卡尔pit模块资料(21页珍藏版)》请在金锄头文库上搜索。
1、周期中断定时器(PIT),定时器简介 周期中断定时器简介(PIT) 周期中断定时器寄存器 PIT模块编程范例 时钟产生器模块,定时器简介 为什么使用定时器,时间延迟的产生和测量 外部信号周期和脉冲宽度的测量 事件计数器 事件发生时间比较器 波形发生器 周期性的中断产生 定时器实际上是计数器,它通过累计已知时间间隔的个数来计算时间。被累计的时间间隔若是系统时钟,计数器就变成了定时器。,定时器简介 怎样获得定时器,程序设计软件定时器 void delay(void) unsigned int i,j; for(i=0;i10;i+) for(j=0;j10000;) j+; 微处理器常常内置定时器
2、(硬件定时器) MCS51单片机内有二个16位定时器、计数器 MC9S12XS内置 RTI ( Real Time Interrupt) ECT enhanced capture timer OC Output comparer PWM Pulse width modulationPeriod and pulse width measurement 四个24位PIT定时器,定时器简介 怎样获得定时器,外围扩展定时器,8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三
3、个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。,定时器简介 怎样获得定时器,外围扩展定时器,DS12887把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,可广泛用于各种需要较高精度的实时时钟场合中。其主要功能如下: (1)内含一个锂电池,断电情况运行十年以上不丢失数据。 (2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。 (3)二进制数码或BCD码表示时间、日历和定闹。 (4)12小时或24小时制,12小时时钟模式带
4、有PWM和AM指导,有夏令时功能。 (5)MOTOROLA5和INATAEL总线时序选择。 (6)有128个RAM单元与软件音响器,其中14个作为字节时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。 (7)可编程方波信号输出。 (8)中断信号输出(IRQ)可以产生500ms一次到每122s一次的中断,定时器简介 定时器的主要性能参数,位数 加1或是减1 时钟 重装载,周期中断定时器简介(PIT),4路24位定时器,每路可以分别 打开或关闭 1224个总线 周期定时 产生中断信号,周期中断定时器寄存器,1、PIT控制寄存器及强制载入微定时器寄存器 PITCFLM
5、T,PITE:PIT模块使能位 0 禁止PIT 1 使能PIT PITSWAIT:等待模式PIT停止控制位 0 在等待模式下PIT正常运行 1 在等待模式下PIT时钟产生器停止 PITFRZ:冻结模式PIT计数器冻结控制位 0 在冻结模式下PIT正常运行 1 在冻结模式下PIT计数器失去作用 PFLMT10:PIT强制载入微定时器模数值控制位 1 相应的8位微定时器模数值被载入8位微定时器递减计数器中 0 强制载入无效,地址:$0340,周期中断定时器寄存器,2、PIT强制载入定时器寄存器 PITFLT,PFLT30:PIT强制载入定时器模数值控制位 1 相应的16位定时器模数值被载入16位定
6、时器递减计数器中 0 强制载入无效 3、PIT通道使能寄存器 PITCE,PCE30:PIT使能控制位。该寄存器使能PIT四个通道,如果PCE写0,PIT通道将被禁止, PITTF中相应的标志位也将被清除;如果PCE写1,PIT通道使能,16位定时器计数器被载入起始值并开始计数。 1 通道使能 0 通道禁止,地址:$0341,地址:$0342,周期中断定时器寄存器,4、PIT定时器复合寄存器 PITMUX,PMUX30:PTI定时器复合寄存器控制位。该寄存器控制16位定时器与8位微定时器时基0或者时基1连接复合。 0 相应16位定时器与微时基0连接 1 相应16位定时器与微时基1连接 5、PI
7、T中断使能寄存器 PITINTE,PINTE30:PIT定时器溢出中断使能控制位。 0 PIT相应通道溢出中断禁止 1 PIT相应通道溢出中断使能,周期中断定时器寄存器,6、PIT溢出标志寄存器PITTF,PIF30:PIT通道溢出标志位。当16位定时器计数器和相复合的8位微定时器计数器递减到0后, 相应位的标志位被置位。写1后清除标志位,写0无效。 0 PIT相应通道没有发生溢出中断 1 PIT相应通道发生了溢出中断 7、PIT微定时器装载寄存器 PITMTLD0/PITMTLD1,周期中断定时器寄存器,8、PIT定时器装载寄存器 PITLD0/PITLD1/PITLD2/PITLD3,PL
8、D150:同上原理。,周期中断定时器寄存器,9、PIT通道计数器 PITCNT04,PCNT150:该寄存器存放16位递减计数器值。,PIT模块编程范例,void initIOBoutput(void)/IO口初始化,B口为输出 DDRB=0XFF; PORTB=0XFF; void initPIT(void)/定时中断初始化函数 50MS定时中断设置 PITCFLMT_PITE=0; /定时中断通道0关 PIT使能端 PITCE_PCE0=1;/定时器通道0使能 PITMTLD0=240-1;/8位定时器初值设定。240分频,在24MHzBusClock下,为0.1MHz即10us. PIT
9、LD0=PITTIME-1;/16位定时器初值设定。PITTIME*0.01MS PITINTE_PINTE0=1;/定时器中断通道0中断使能 PITCFLMT_PITE=1;/定时器通道0使能 ,初始化模块,PIT模块编程范例,中断服务子程序,void interrupt 66 PIT0(void) vTmpPIT+; if(vTmpPIT=10) PORTB=PORTB;/输出取反 vTmpPIT=0; PITTF_PTF0=1;/清中断标志位 ,void main(void) pllclk(); initIOBoutput(); initPIT(); EnableInterrupts;
10、for(;) /* wait forever */ ,主程序,时钟产生器模块 寄存器,锁相环模块,利用锁相环可以提高总线频率 若晶振为4M 不使用锁相环:总线频率为2M 使用锁相环:总线频率可为40MHz 可通过以下锁相环模块的寄存器设置提高总线频率 锁相环控制寄存器(PLLCTL) 时钟合成寄存器(SYNR) 时钟分频寄存器(REFDV) 时钟产生模块的标志寄存器(CRGFLG) 时钟选择寄存器(CLKSEL) 预分频寄存器(POSTDIV),时钟产生器模块 寄存器,1、时钟分频寄存器REFDV,REFFRQ10 :与参考时钟有关 00 1-2M 01 2-6M 10 6-12M 11 12
11、M以上 REFDIV50 :分频因子,有效值为063。,地址:$35,2、时钟合成寄存器SYNR,VCOFRQ10:与压控振动器有关 00 VCO频率 32-48M 01 VCO频率 48-80M 10 VCO频率 80-120M 11 VCO频率 120M以上 SYNDIV50:锁相环时钟倍频数,有效值为063。,地址:$34,时钟产生器模块 寄存器,3、锁相环控制寄存器(PLLCTL),CME: 时钟监控允许位 1 允许 0 禁止 PLLON: 锁相环电路允许位 1 允许 0 禁止,地址:$3A,4、时钟产生模块的标志寄存器 CRGFLG,LOCK :锁相环锁定标志,从外部晶振频率时钟切换
12、到VCO时钟时需要查看该标志是否由0变为1。 1 时钟频率已稳定,锁相环频率已锁定 0 时钟频率未稳定,锁相环频率未锁定,地址:$37,时钟产生器模块 寄存器,5、时钟选择寄存器(CLKSEL),PLLSEL:选定锁相环位 1 Bus ClockPLLCLK/2 0 Bus ClockOSCCLK/2,地址:$39,6、预分频寄存器POSTDIV,POSTDIV40 :预分频因子。POSTDIV 为默认时(后四位全0),fvoc =fpll。,地址:$,时钟产生器模块 寄存器,REFDV=0X07; /设置分频系数 SYNR=0X53 ; /设置倍频参数 while(CRGFLG-LOCK!=
13、1);/等待稳定 POSTDIV=0;/预分频系数默认fpll=fvoc CLKSEL=0x80; /选择PLL作为时钟 /若晶振为16M,则PLLCLK=2*16*(19+1)/(7+1)=80MHz,则总线频率是40MHz,锁相环模块寄存器设置示例,时钟产生器模块 程序示例,锁相环模块,void pllclk(void)/总线24MHz,外部时钟为16MHz CLKSEL=0X00; PLLCTL=0xe1; SYNR=2;/PLLCLK 2*OSCCLK*(SYNR + 1)/(REFDV + 1) REFDV=1; PLLCTL=0X60; asm NOP; asm NOP; asm NOP; while(CRGFLG ,