历史上的今天
今天是: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 #include #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; }
史海拾趣
|
若干高功率微波(HPM)技术已走向成熟,它们正在从工程与制造阶段向战术武器阶段过渡,目前很可能在进攻伊拉克的战斗中看到首次使用微波武器.本文简要介绍美、英、俄三国发展HPM武器技术的计划,评述了几种典型HPM武器研究的重大进展,最后讨论了HPM武器 ...… 查看全部问答> |
|
如果设计稍显复杂,那么对底层细节的过多关注就会成为一种累赘。 试想我们平时在电脑上编写C程序,比如在显示器上输出一行字,我们只用一句printf()即可完成,至于打印命令怎么传到显示芯片上,哪个芯片管脚怎么 变化,又怎么传到显 ...… 查看全部问答> |
|
希望参加《智能家居系统》的网友添加113586004群,在群内讨论问题。 [ 本帖最后由 zhaojun_xf 于 2010-7-31 10:28 编辑 ]… 查看全部问答> |
|
请教各位大大~~~~~关于ARM开发板的选择~~~~~~~~~~ 小弟最近想学RAM,之前一直用的51,不能说精通吧,至少基本的原理和应用算是比较熟悉了 现在想买块开发板,看上面置顶区里有个团购STM32的活动,不知道这块板子怎么样啊? 还有就是STM32在ARM里算是什么样的定位?适不适合像我这 ...… 查看全部问答> |
|
调试时出现的奇怪现象Program exit reached 如图,调试时出现的现象,右边绿色DebugBreak,下边蓝色部分Program exit reached,请问大家遇到过没有?怎么解决,现在烧不进程序了。… 查看全部问答> |
|
今天早上,收到了AT88CK490开发板。先简单的晒板,然后就预备开始测试了,最后再和MAXIM的DS28E15DEMOK开发板做个比较。 简洁的说明和包装 开发板正面,类似TI的EZ430那样的U盘风格。整个板就包含了4颗ATMEL的芯片:一个AT90USB1287 MCU、3个 ...… 查看全部问答> |




