在线时间276 小时
UID2086952
注册时间2015-8-9
NXP金币253
TA的每日心情 | 开心 2023-6-2 13:32 |
---|
签到天数: 272 天 连续签到: 1 天 [LV.8]以坛为家I
金牌会员
 
- 积分
- 4413
- 最后登录
- 2023-6-2
|
Systick是一个CM0+自带的时钟.
设置好也是能用的.
下面就是两个例子,集成在工程了.
- /*system clock frequency is 60MHz.*/
- void Systick_init_30M_timer(void){
- SysTick->LOAD=16777215;
- SysTick->VAL=0;
- SysTick->CTRL=1;
- }
- unsigned char timeout(volatile unsigned long *timer,unsigned long interval){
- volatile unsigned long cnt=SysTick->VAL;
- volatile unsigned long differ;
- if(cnt<=*timer){
- differ=*timer-cnt;
- }else{
- differ=16777216+*timer-cnt;
- }
- if(differ>=interval*30){
- *timer=cnt;
- return(1);
- }else{
- return(0);
- }
- }
- void start_1us_cnt(void){
- systick_timer=SysTick->VAL;
- }
- unsigned long stop_1us_cnt(void){
- unsigned long t=SysTick->VAL;
- unsigned long differ=0;
- if(t<=systick_timer){
- differ=systick_timer-t;
- }else{
- differ=16777216+systick_timer-t;
- }
- return(differ/30);
- }
复制代码 第一个功能 timeout,相信大家会知道有什么用.
第二个功能 1us计时器,可以测量代码用时.
|
|