定时器程序(定时时钟电路程序?)
使用定时器的一般流程是什么?
TR0=1//起始定时器0。这是计时器开始工作的时候。
程序中配置的定时器中断时间为50ms(12MHz晶振),即每隔50ms进入中断功能。中断后,程序重置定时器50毫秒,并记录中断次数(tt)。
主程序可以通过查询记录值(tt)知道定时器被中断了多少次。
主函数的while(1)表示系统是一个循环系统,不断循环,永不结束。当定时器产生中断时,主函数将被挂起,这称为中断。
中断结束后,在主函数中断的地方,继续执行主函数的内容。
定时时钟电路程序?
1.程序结构采用主程序和中断服务子程序的结构。
2.定时中断程序
1定时器在模式1下每10ms中断一次,16位。
40H10ms计数单元
41H秒计数单元
42小时分钟计数装置
43小时计数装置
时序模式1为10MS:THX=0ECH,TLX=78H。
0是10MS: THX=63H,TLX=18H。
stm定时器编程步骤?
首先,配置一个TIM_TimeBaseInitTypeDef的结构。
示例:Tim _ time base init typedef Tim _ time base structure
3.2定时器TIMx设置为默认值。示例:TIM_DeInit(TIM2)
3.3根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时基装置。配置如下。
A.配置定时器的周期加载值(TIM_Period)。它设置在下一次更新事件中加载有效自动重载寄存器的周期值。其值必须介于0x0000和0xFFFF之间。例如:
TIM_TimeBaseStructure。蒂姆周期=1000
B.设置定时器时钟预分频器值(TIM_Prescaler)。设置用作TIMx时钟频率除数的预分频值。其值必须介于0x0000和0xFFFF之间。例如:
TIM_TimeBaseStructure。TIM _预分频器=71
C.设置时钟分割。实验设置如下,即来自APB1的时钟不分频。
TIM_TimeBaseStructure。TIM_ClockDivision=TIM_CKD_DIV1
D.选择计时器的计数模式。在这里,选择向上计数的方法。它从0开始计数,当计数值增加到配置的周期性加载值时,定时器中断将被触发。则计数值被自动清除。
TIM_TimeBaseStructure。TIM _ counter mode=TIM _ counter mode _ Up
E.初始化定时器。调用定时器API函数是:Tim _ timebase init();
F.在实验中,中断用于精确计时。因此,初始化定时器时,应清除先前的中断标志。调用定时器的中断标志位函数为:Tim _ clearflag (timx,Tim _ flag _ update)
G.启用定时器中断。调用定时器中断的API函数是:
TIM_ITConfig(TIMx,TIM_IT_Update,ENABLE)
H.使能定时器TIM_Cmd(TIMx,使能)
4.NVIC初始化配置
4.1.设置中断名称。这个例子是TIM2_IRQn。
4.2.中断优先级的设置。
4.3.IRQ通道使能。
4.4.根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器TIM2。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。