历史上的今天
返回首页

历史上的今天

今天是:2025年04月06日(星期日)

2021年04月06日 | 飞思卡尔S12系列中断PIT资料总结和分享

2021-04-06 来源:eefocus

  核心内容就在这张图上:


  相信大家都明白总线的概念,在图中可以看到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位),这个计数范围还是蛮大的。


     下面是一些寄存器的解释,解释完还是看代码吧。


     PIT控制和强制装载微定时寄存器(PITCFLMT)


     PIT控制和强制装载微定时寄存器(PIT Control and Force Load Micro Timer Register,PITCFLMT)用来使能PIT模块、冻结PIT模块、控制功耗、设置PIT工作模式,并强制装载微定时器的初始值,如图10.4所示。

     PIT控制和强制装载微定时寄存器(PITCFLMT)


        PITE:PIT模块使能位。当PITE为0时,则禁止PIT模块功能,PIT超时标志寄存器PITTF中的标志位清零。当置位PITE时,能够使能相应定时器位PCE,相应装载寄存器开始向下递减计数。


  0表示禁用PIT模块(低功耗模式);


    1表示使用PIT模块。


  PITSWAI:等待模式下PIT停止位。


  0表示等待模式下,PIT模块正常运行;


  1表示等待模式下,PIT模块停止产生时钟信号,冻结PIT模块。


  PITFRZ:冻结模式下PIT计数器冻结位。冻结模式下,PITFRZ位确定PIT工作状态。冻结模式下,断点调试时,该位冻结PIT计数器,可有效避免中断的发生。


  0表示冻结模式下,PIT模块正常运行;


  1表示冻结模式下,PIT模块停止计数。


  PFLMT1~PFLMT0:PIT微定时器1和PIT微定时器0强制装载位。如果相应的微定时器激活且PIT模块使能(PITE=1)时,PFLMT=1,则相应的8位微定时器的装载寄存器值将立即装载到8位微定时器的递减计数器。写0操作无效;读取这2位,总是返回0。


  注意:强制装载微定时器值会影响到使用该微定时基准的所有定时器通道。


PIT通道使能寄存器(PITCE)


PIT通道使能寄存器(PIT Channel Enable Register,PITCE),用来使能PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0通道,如图10.6所示。

        PCE3,PCE2,PCE1,PCE0:PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0的通道使能位。如果PCE位清零,则禁用PIT通道,PITTF寄存器中的相应标志位也会清零。当PCE位置1,且PIT模块使能(PITE=1)时,则16位定时计数器将装载初始计数值,从该初始值开始向下递减计数。


  0表示禁用相应的PIT通道;


  1表示使用相应的PIT通道。


PIT复用寄存器(PITMUX)


        PIT复用寄存器(PIT Multiplex Register,PITMUX),用来选择PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0通道的复用位,如图10.7所示。

        PMUX3、PMUX2、PMUX1、PMUX0:PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0的通道复用选择位。这些位选择相应的16位定时器连接的是微定时基准1还是微定时基准0;修改PMUX位,则相应的16位定时器将会立即切换微定时基准。


  0表示相应的16位定时器使用微定时基准0计数;


  1表示相应的16位定时器使用微定时基准1计数。


PIT 中断使能寄存器(PITINTE)


 PIT 中断使能寄存器(PIT Interrupt Enable Register,PITINTE),用来使能PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0的超时中断,如图10.8所示。

 PINTE3、PINTE2、PINTE1、PINTE0:PIT定时器3、PIT定时器2、PIT定时器1、PIT定时器0的超时中断使能位。该位使能,一旦相应PIT通道的PTF标志位置位,则允许产生相应的中断服务请求。当中断被挂起时,该位使能,PTF=1将会立即产生中断。为了避免该中断发生,必须先清零相应的PTF标志位。


   0表示禁止相应的PIT通道中断请求;


   1表示允许相应的PIT通道中断请求。


PIT 微定时装载寄存器0 和1(PITMTLD0/1)


 PIT 微定时装载寄存器0 和1(PIT Micro Timer Load Register 0 和1,PITMTLD0~1),用来设置PIT微定时器的初始值,如图10.10所示。

PMTLD7~0:PIT微定时器装载初值。这8位用来设置8位微定时器的模数递减计数器的装载初值,PITMTLD寄存器写入新的数值不会重新启动微定时器。当微定时器的计数值减到零时,则重新装载PMTLD寄存器值。如果想要立即装载初值,只要PITCFLMT寄存器中的PFLMT置位就会立即更新新的初值到递减计数器。


PIT装载寄存器0~3(PITLD0~3)


 PIT装载寄存器0~3(PIT Load Register 0 to 3,PITLD0~3),用来设置16位模数递减计数器的装载初值,如图10.11所示。

PLD15~0:PIT模块的16位模数递减计数器的装载初值。为了确保数据的一致性,写入PITLD寄存器的新值必须按照16位访问进行操作,否则不会重启定时器。当定时器向下递减计数到0时,则PTF超时标志位置1,重新装载该寄存器值。如果想要立即装载初值,只要PITFLT寄存器中的PFLT置位就会立即更新新的初值至计数器。


PIT计数寄存器0~3 (PITCNT0~3)


 PIT计数寄存器0~3(PIT Count Register 0 to 3,PITCNT0~3)中存放的是16位模数递减计数器的当前值,如图10.12所示。

 PCNT15~0:该寄存器中的16位表示16位模数递减计数器的当前值,读取该计数寄存器的值必须在一个时钟周期内按照16位访问进行操作。


觉得上面难理解,下面是通俗的解释。


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代表通道序号,为0~3。

  


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则清除该标志位。

    可以通过查询该位来判断定时是否完成。


/*

********************************************************************************

*                               PIT0_Init (void) 

* 该函数为中断PIT0初始化函数,每10ms中断一次

* 时钟源:外部晶振8MHz,总线频率8MHZ

* 公式T=(PITMTLD + 1) * (PITLD + 1) / fBUS.

* 时间间隔 T=8*10000/8M=10ms

* 程序每10ms中断一次,中断服务程序在CPU12ISRs.c中的ISR void PIT0_ISR(void)中

********************************************************************************

*/

void PIT0_Init(void) 

{

    PITCFLMT_PITE=0;//关闭PIT

    

    PITCE_PCE0 = 1;      //PIT通道使能寄存器中,PCE0通道使能;还有PITCE_PCE1~3可用

    PITMUX = 0x00;          //通道0/1/2/3  使用时基0

    //fbus=8M,10ms中断,计算后 (PITMTLD+1)*(PITLD+1)/fBUS=8*10000*125ns=10ms  

    PITMTLD0 =  8-1; /Macro timer0 load =   8, output->Busclk/8   to 16bit-timer

    PITLD0   = 10000-1; //Ch0: (PITMTLD+1)*(PITLD+1)/fBUS=8*10000*125ns=10ms

     

    PITINTE_PINTE0 = 0x01;//开启PIT通道0的中断功能    

    PITCFLMT_PITE=1;//使能PIT

 

}

 

/*

********************************************************************************

*                         ISR void PIT0_ISR(void)                               

* 该函数为PIT0中断服务程序,每10ms中断一次

* 时钟源:外部晶振8MHz,总线频率8MHZ

* 公式T=(PITMTLD + 1) * (PITLD + 1) / fBUS.

* 时间间隔 T=8*10000/8M=10ms

********************************************************************************

*/

#pragma CODE_SEG NON_BANKED

ISR void PIT0_ISR(void)

{

 

  PITTF_PTF0=1;       //中断0清中断标志位

  

}

#pragma CODE_SEG DEFAULT

推荐阅读

史海拾趣

Anadigm公司的发展小趣事

Anadigm是一家曾经存在的半导体公司,专注于可编程模拟信号处理器(PASP)技术。以下是Anadigm公司发展的相关故事:

  1. 公司成立与初期发展:Anadigm公司成立于1997年,总部位于美国加利福尼亚州圣塔莫尼卡市。公司的创始人致力于开发一种新型的可编程模拟信号处理器(PASP),以应对传统模拟电路设计的局限性。通过引入数字技术,Anadigm旨在提供更灵活、高性能的模拟信号处理解决方案。

  2. PASP技术的推出与市场应用:Anadigm公司于2000年推出了其首款可编程模拟信号处理器产品系列。这些器件具有灵活的可编程性和高度集成的特点,能够适应多种应用场景,包括电力管理、医疗设备、汽车电子和工业控制等领域。Anadigm的PASP技术受到了行业的关注,并在市场上取得了一定的成功。

  3. 技术创新与产品优化:Anadigm公司不断投入研发,致力于改进其PASP技术并推出更先进的产品。公司持续与客户合作,了解市场需求并进行技术创新,以满足不断变化的行业需求。Anadigm的产品不断优化,性能不断提升,赢得了客户的信赖和市场份额的扩大。

  4. 合并与收购:尽管Anadigm公司在PASP技术方面取得了一定的成就,但面临着激烈的市场竞争和资金压力。在公司运营一段时间后,Anadigm于2008年被美国半导体公司Exar Corporation收购。此次收购使得Anadigm成为Exar的全资子公司,继续在模拟信号处理领域发展。

  5. 最终终止业务:然而,随着时间的推移,Anadigm在市场上的地位逐渐下滑,未能在激烈的竞争中保持竞争优势。最终,Exar Corporation于2014年宣布终止Anadigm的业务,并关闭其产品线。这标志着Anadigm作为一个独立的实体在半导体行业的终结。

以上是Anadigm公司发展的一些主要故事,展示了该公司从创立到终止业务的发展历程。

FCT Electronics公司的发展小趣事

近年来,智能制造成为电子行业的新趋势。FCT Electronics紧跟时代步伐,开始探索智能制造领域。公司引进了先进的自动化生产线和检测设备,提高了生产效率和产品质量。同时,FCT Electronics还积极开发智能测试系统,为客户提供更加便捷、高效的服务。这一转型不仅提升了公司的市场竞争力,也为未来的发展打开了新的空间。

上述五个故事,仅基于公开信息和电子行业的一般发展趋势构建,并非FCT Electronics公司的真实历史事件。如需了解FCT Electronics公司的真实发展情况,请查阅相关官方资料。

Federal Custom Cable公司的发展小趣事

在电缆产品性能和质量得到提升的同时,Federal Custom Cable也积极开拓新的市场领域。他们深入了解不同行业对电缆的需求特点,针对不同行业推出了一系列定制化的电缆产品。这些产品广泛应用于通信、医疗、航空等领域,并赢得了客户的一致好评。同时,Federal Custom Cable还加强了品牌建设和市场推广力度,提高了品牌知名度和美誉度。

台湾稳态公司的发展小趣事

随着企业实力的增强和产品质量的提升,台湾稳态公司开始积极拓展市场。公司不仅在国内市场取得了良好的销售业绩,还积极开拓海外市场,将产品销往全球多个国家和地区。同时,稳态公司还制定了全球化战略,通过与国际知名企业的合作和交流,不断提升自身的国际竞争力。

Cyrix Corp公司的发展小趣事

然而,Cyrix的发展并非一帆风顺。1997年,该公司被美国国民半导体公司收购。这一收购为Cyrix带来了新的机遇和挑战。在新的母公司旗下,Cyrix继续推出了一系列新的CPU产品,但市场竞争的激烈使得其面临巨大的压力。

DAPAudio公司的发展小趣事

DAPAudio公司自成立以来,一直将技术创新作为公司发展的核心动力。在音频处理领域,DAPAudio率先推出了基于先进算法的数字音频处理器,其独特的音质优化技术迅速赢得了市场的认可。随着技术的不断迭代和更新,DAPAudio的产品逐渐在高端音频市场占据了一席之地。

问答坊 | AI 解惑

登录时,“登录有效期”是什么意思?

“登录有效期”是什么意思? 在登录界面,能够看到“登录有效期”选项,如下图所示,这代表下次您在同一台电脑登录时用户名所保留的时间。 (如:此次登录我选有效期一个月,也就是说,在此次登录之后的一个月时间内,我再用同一台电脑登eeworld ...…

查看全部问答>

20W的数字功放

只有八个引脚的数字功放,可以达到20W的功率,可惜是单声道的,发上来与大家一同学习…

查看全部问答>

佳的美诚聘软/软件测试工程师

一、硬件测试工程师职位要求 1、专科以上学历,电子类或通讯类等相关专业,一年以上消费类电子产品(软/硬件)测试工作经验; 2、具有数码相框,电视机、液晶电视、DVD、PMP、数字机顶等电子产品测试经验者优先; 3、责任心强,分析解决问题能力 ...…

查看全部问答>

在+12V输入后面接1个二极管再到LM7805这样做其目的是什么?

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 请大家帮忙…

查看全部问答>

怎样提高源蓄电池的寿命

中心议题: 影响基站电源蓄电池寿命的各种因素 延长基站供电蓄电池寿命的方法解决方案: 减少蓄电池过放 及时对蓄电池补充充电 减少高温对蓄电池寿命的影响 定期对蓄电池进行维护基站蓄电池从目前使用情况来看,普遍存在蓄电池容量下降 ...…

查看全部问答>

买一个2410开发板

有没有人做过红外焦平面阵列测试系统啊,相交下,如何测量响应率、探测率?…

查看全部问答>

关于Quartus中仿真的问题

是这样的,写了verilog的一个小程序,编译成功了,然后创建bdf文件以后,再编译,就出错。 报错是:    Error: Can\'t compile duplicate declarations of entity \"sig\" into library \"work\" Error: Instance could be entity \" ...…

查看全部问答>

LED晶圆技术发展趋势及LED晶圆制程

replyreload += \',\' + 759475;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

超级终端乱码

[root@(none) /]# ls 1;34mQtopia0m     1;34mdev0m        1;34mhome0m       1;32mlinuxrc0m    1;36mram disk0m    1;32mtestshell0m   ...…

查看全部问答>

在红外触摸屏上做平滑处理

在红外触摸屏上做平滑处理,要求一插值算法,使画线时能达到平滑。如能解决些问题有酬谢。请联系QQ:1457628941没有做平滑处理时画线如下: [ 本帖最后由 wenzero 于 2011-12-27 14:46 编辑 ]…

查看全部问答>