定时器驱动

想要每次进tick的时间相同如,每秒进100次tick:

  1. Tick想要100次/秒,那一个tick就是1ms,而系统时钟频率是12 000 000 ;
  2.  12 000 000Hz/100Hz, 就是时钟频率除以tick频率,翻译过来就是每秒的时钟滴答次数/每秒的tick次数等于一个tick多少次时钟滴答,
  3. 然后计算每秒有多少的纳秒1s = 1 000 000 000ns,除以tick的频率就是一个tick多少ns,
  4. 一个tick的 ns数除以一个tick的时钟滴答数就是一个时钟滴答多少ns
  5. 一个tick的滴答数计算出来了是12 000 0把这个数写进一个计数器中,这个计数器在硬件中有一个特定位置,叫counter,这个就叫定时器。
  6. init中要做:在时钟树上查找到HStimer是挂在AHB1BUS的GATEing上的,先把这个时钟打开这个gating有hstimer的gating clock,将此位置pass
  7. 设置分频方式,,因为输入晶振是24MHz而我们的时钟频率用的是一个12MHz的时钟,所以选择2分频,以及将可重载寄存器置为1,后面就是把counter的值写到重载值,将定时器中断使能以及定时器使能,就可以让定时器工作了,
  8. 这个counter会根据系统时钟的滴答做减一操作,每个滴答减一,当这个counter减到0时,进一次中断服务程序并且这个counter将自行重载回初始值进行下一次的减一操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值