systick 时间修改_如何将systick计数器用于中断定时,作为一个系统时间

论坛上用原子的开发板也学习了许多,谢谢大家!

以下更改,如果有更好的实现方法,请指正!

更改的目的是为了将systick计数器用于中断定时,作为一个系统时间,开机后不停运行,

将来可以作为一个多任务的时间节拍使用!

//Delay.c

//使用芯片的 SysTick 部件进行软件延时的操作

//

#include "delay.h"

#include "sys.h"

vu32 system_time =0u;         //系统时间计数器,单位和节拍重装寄存器的设置值有关

static vu16 systick_reload_val;       //系统节拍重装值

static vu16 systick_cnt_of_1us;       //1us时间内的systick的计数值

//初始化延迟函数

//SYSTICK的时钟固定为HCLK时钟的1/8

//SYSCLK:系统时钟(MHz)

void delay_init(u8 SYSCLK)

{

SysTick->CTRL = SysTick_Counter_Clear;    //清除(停止)

SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;  //选择外部时钟(bit2=0 HCLK/8)

systick_reload_val= (u16)((SYSCLK *CONST_SYSTICK_NUM_OF_US) >>3); //节拍定时 CONST_SYSTICK_NUM_OF_US(us)

SysTick->CTRL |= BIT

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值