定时器的接线方法:电磁阀2根(绿、蓝)线,蓝线与电源蓝线并接,绿线接连接时间触点一端,另外一端接粉色线,通电一段时间后触点张开时,桃红色线与绿线导通,电磁阀得电动作。
微电脑定时器接的线是两进两出的,进的线是一根火线一根零线,出的线确实是一根火线一根零线,出的两根线可以直接分别接到压制线圈为220v的交流接触器控制线圈的两个接线柱上来控制接触器。或则也这个可以2小时控器出的线真接做灯的电源来再控制灯。
定时器插座是一个使用芯片操纵的也可以系统设置在某一特定的时间段开关闭电源的插座产品。时间修改范围:每星期或每日里按设定的程序循环工作,1分-168小时。
(一)系统时钟(systick)
设置更加很简单,以下是再产生1ms网络中断的设置,和才能产生10ms显示延迟的函数:
voidrcc_configuration(void)
{
rcc_clockstypedefrcc_clockfreqsysteminit()//典出system_stm32f10x.c文件,只是需要内部函数此函数,则可完成rcc的配置.
rcc_getclocksfreq(amprcc_clockfreq)
//systick分频--1ms的系统时钟中断
if(systick_config(systemfrequency/1000))
{
while(1)//captureerror
}
}
voidsystick_handler(void)//在掉线处理函数中的程序
{
while(tim)
{
tim--
}
}
//动态链接库程序:
delay_ms(10)
肯定,前提是要设置里好,变量tim要设置成volatile类型的。
(二)第二种比较复杂到定时器计数时间(timx)
/*tim3时钟配置*/
tim_timebasestructure.tim_prescaler2//预分频(时钟分频)72m/(21)24m
tim_timebasestructure.tim_countermodetim_countermode_up//向上升计数
tim_timebasestructure.tim_period65535//货柜舱值18k/144125hz
tim_timebasestructure.tim_clockdivisiontim_ckd_div1
tim_timebasestructure.tim_repetitioncounter0x0
tim_timebaseinit(tim3,amptim_timebasestructure)
定时时间换算:
tim_timebasestructure.tim_prescaler2
//分频272m/(21)/224mhz
tim_timebasestructure.tim_period65535//计数值65535
((1tim_prescaler)/72m)*(1tim_period)((12)/72m)*(165535)0.00273秒366.2hz*/
注意两点(充斥大虾网,未经检验)
(1)timx(1-8),在库可以设置设置为的情况下,大都72m的时钟
(2)tim_timebasestructure.tim_repetitioncounter0
是反复重复定时计数,那就是重复一遍溢出多少次才给你来一个逸出网络中断,
它不对应的寄存器叫tim1rcr.
如果不是这个值不配置,上电的时候寄存器值不过副本的,其实1秒关闭四次,可能会变成n秒中断第二次,让你超级头大!
题中系统时钟是72mhz,tim1是由pclk2(72mhz)我得到,tim2-7是由pclk1我得到
关键是设定好时钟预分频数,自动出现重停泊寄存器周期的值
/*每1秒发生了什么一次没更新事件(进入关闭服务程序)。rcc_configuration()的systeminit()的
rcc-gtcfgr|(uint32_t)rcc_cfgr_ppre1_div2是因为tim3clk为72mhz。但,隔一段时间进入中
断服务程序间隔时间为
((1tim_prescaler)/72m)*(1tim_period)((17199)/72m)*(19999)1秒*/
定时器的基本都设置
1、tim_timebasestructure.tim_prescaler7199//时钟预分频数.例如:时
钟频率72/(时钟预分频1)
2、tim_timebasestructure.tim_period9999//不自动重货柜舱寄存器周期的值(设置定时
时间)累计0xffff个频率后产生个自动更新或者自动(又是说每隔几小时时间到)
3、tim_timebasestructure.tim_countermodetim1_countermode_up//定时器
模式向上数器
4、tim_timebasestructure.tim_clockdivision0x0//时间编缉值
5、tim_timebaseinit(tim2,amptim_timebasestructure)//重新初始化定时器2
6、tim_itconfig(tim2,tim_it_notification,enable)//然后打开关闭流出中断
7、tim_cmd(tim2,enable)//再打开定时器
或