历史上的今天
返回首页

历史上的今天

今天是:2025年08月17日(星期日)

2021年08月17日 | 手把手教你写S12XS128程序(25)--Timer模块应用实例2

2021-08-17 来源:eefocus

输出比较(OC)编程步骤:


初始化函数


TIOS---选择工作方式为OC


TCx---通道x的OC寄存器赋初值,经过N秒后进入第一次中断


TCTLx---设置对应位输入捕捉的方式(x=1、2,高四位是1,低四位是2)


TSCRx---控制寄存器设置,包括工作使能、确定工作方式(x=1)、中断允许、预分频


TIE---中断使能


中断函数


清除标志位---TFLG1


重新赋初值TCx


【例程4】

//---------------------------------------------------------------------------//


//功能说明:利用PT0的输出比较功能,定时进入中断


//          利用PORTB显示定时的时间


//程序设计:电子设计吧


//设计时间:2010.01.15


//---------------------------------------------------------------------------//


#include       /* common defines and macros */


#include      /* derivative information */


#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"


 


//利用定时器输出比较功能产生定时中断


//----------------------变量定义----------------------//


static unsigned int waittime = 0;


 


//---------------------时钟初始化-------------------//


void PLL_Init(void)      //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)


{                     //锁相环时钟=2*16*(2+1)/(1+1)=48MHz


  REFDV=1;            //总线时钟=48/2=24MHz


  SYNR=2;


  while(!(CRGFLG&0x08));


  CLKSEL=0x80;


}


//--------------------定时器初始化------------------//


void ECT0_Init(void)


{


  TIOS=0x01;    //定时器通道0设置为输出比较 


  TC0=0x00ee;   //赋初值,当TCNT从0计数到此值时第一次进入中断


  TCTL2=0x02;  //其他七路与定时器断开   执行的动作时:0通道输出清零


  TSCR2=0x86   //溢出中断禁止   24M/64=2.67微秒,计一个数用2.67微秒


  TSCR1=0x80;  //使能定时器


  TIE=0x01;     //通道0输出比较中断允许


}


//-----------------------主函数------------------------//


void main(void) 


{


  PLL_Init();


  ECT0_Init();


  DisableInterrupts;


  DDRB=0xff;


  PORTB=0x00;


  for(;;) 


  {


    EnableInterrupts;


  } 


}


//-----------------------中断函数处理-------------------//


#pragma CODE_SEG NON_BANKED


void interrupt 8 Timer0_ISR(void) //8为定时器通道0的中断标号


{


  unsigned int m;


  TFLG1_C0F=1;//清中断标志位


  DisableInterrupts; 


  m=TCNT;


  TC0=m+37500; //37500*2.67us=10ms定时时间


  waittime++;


  if(waittime>=255) 


  {


    waittime=0; 


  }


  PORTB=waittime;


}


推荐阅读

史海拾趣

EiKO Global LLC公司的发展小趣事

EiKO Global LLC,简称EiKO,成立于XXXX年,由一群热衷于照明科技的先驱者共同创立。公司初期专注于照明产品的研发与生产,致力于为全球用户提供高质量的照明解决方案。EiKO凭借对市场的敏锐洞察力和技术创新,迅速在北美市场崭露头角。

在创立初期,EiKO便确立了以“质量第一、客户至上”为经营理念的方针。通过引进先进的生产设备和技术,严格把控产品质量,EiKO的照明产品逐渐赢得了消费者的信赖。同时,EiKO还积极拓展市场,与多家知名企业和零售商建立了合作关系,产品销售网络遍布全球。

CINTERION公司的发展小趣事

2010年,电子支付与身份识别技术领域的领军企业金雅拓,全资收购了CINTERION。这一资本动作不仅为CINTERION带来了更多的资金支持,更使其在金雅拓的物联网事业部中获得了更广阔的发展空间。收购完成后,CINTERION继续保持其技术领先地位,并在金雅拓的推动下,进一步拓宽了产品线和应用领域。

GarrettCom公司的发展小趣事

背景:GarrettCom始创于1989年,专注于工业网络通信产品的研发与制造。在那个工业自动化初具规模的年代,GarrettCom凭借其卓越的产品质量和创新的解决方案,迅速在市场中崭露头角。公司推出的工业以太网交换机和路由器等产品,以其高稳定性和可靠性,赢得了众多工业客户的信赖。

发展:随着工业自动化程度的不断提升,GarrettCom不断加大研发投入,推出了一系列适应恶劣工业环境的产品。这些产品不仅满足了工业自动化对通信稳定性的严苛要求,还推动了工业通信技术的进步。通过不断的技术创新和市场拓展,GarrettCom逐步确立了其在工业通信领域的领先地位。

Denyo Europa Gmbh公司的发展小趣事

Denyo Europa Gmbh公司始终认为企业是社会的一部分,应该承担起相应的社会责任。公司积极参与各种公益活动,为当地社区的发展贡献力量;同时,公司还关注弱势群体的需求,为他们提供力所能及的帮助。这种对社会责任的担当精神,使公司在社会中树立了良好的企业形象。

Gulf Semiconductor公司的发展小趣事

随着全球环保意识的提高,Denyo Europa Gmbh公司积极响应号召,致力于绿色环保的生产方式。公司采用环保材料替代传统材料,减少生产过程中的污染排放;同时,公司还加强废弃物的回收和再利用工作,实现资源的循环利用。这些环保实践不仅提升了公司的社会形象,也为公司的可持续发展提供了有力支持。

Aearo Technologies公司的发展小趣事

尽管Aearo Technologies在行业中享有盛誉,但近年来也面临了一些挑战。公司生产的一款名为“Combat Arms”的军用耳塞被指存在设计缺陷和质量问题,导致部分使用者听力受损。这一事件引发了广泛的关注和诉讼。面对这一挑战,Aearo Technologies积极应对,与相关部门合作进行调查,并采取了一系列措施改进产品质量和确保用户安全。

问答坊 | AI 解惑

CANopen 协议介绍(中文)

CANopen 协议介绍(中文)…

查看全部问答>

不可多得51单片机入门教材

在网上找了N年才找到不可多得51单片机入门教材。如果你是高手就没有必要看了。如果你是入门级的嘿嘿。。。…

查看全部问答>

高功率微波武器即将进入武器库

若干高功率微波(HPM)技术已走向成熟,它们正在从工程与制造阶段向战术武器阶段过渡,目前很可能在进攻伊拉克的战斗中看到首次使用微波武器.本文简要介绍美、英、俄三国发展HPM武器技术的计划,评述了几种典型HPM武器研究的重大进展,最后讨论了HPM武器 ...…

查看全部问答>

NIOS设计过程实例讲解

如果设计稍显复杂,那么对底层细节的过多关注就会成为一种累赘。     试想我们平时在电脑上编写C程序,比如在显示器上输出一行字,我们只用一句printf()即可完成,至于打印命令怎么传到显示芯片上,哪个芯片管脚怎么 变化,又怎么传到显 ...…

查看全部问答>

113586004 已开通了《智能家居系统》讨论群

希望参加《智能家居系统》的网友添加113586004群,在群内讨论问题。 [ 本帖最后由 zhaojun_xf 于 2010-7-31 10:28 编辑 ]…

查看全部问答>

请教各位大大~~~~~关于ARM开发板的选择~~~~~~~~~~

小弟最近想学RAM,之前一直用的51,不能说精通吧,至少基本的原理和应用算是比较熟悉了   现在想买块开发板,看上面置顶区里有个团购STM32的活动,不知道这块板子怎么样啊?   还有就是STM32在ARM里算是什么样的定位?适不适合像我这 ...…

查看全部问答>

调试时出现的奇怪现象Program exit reached

如图,调试时出现的现象,右边绿色DebugBreak,下边蓝色部分Program exit reached,请问大家遇到过没有?怎么解决,现在烧不进程序了。…

查看全部问答>

各位大神

给位大神求教:      与ALPS product No   HSPPARC002传感器功能相似的传感器有什么?国外传感器厂商 …

查看全部问答>

msp430的有用书籍

lz新人,需要芯币,第四个麻烦捧捧场吧之后我编的一些程序会与大家分享的 …

查看全部问答>

晒一下AT88CK490开发板

今天早上,收到了AT88CK490开发板。先简单的晒板,然后就预备开始测试了,最后再和MAXIM的DS28E15DEMOK开发板做个比较。 简洁的说明和包装 开发板正面,类似TI的EZ430那样的U盘风格。整个板就包含了4颗ATMEL的芯片:一个AT90USB1287 MCU、3个 ...…

查看全部问答>