野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14394|回复: 5

这个定时没太看懂

[复制链接]
发表于 2016-8-18 08:57:41 | 显示全部楼层 |阅读模式
extern unsigned int Task_Delay[NumOfTask];
/*

* t = Ticks * 1/f = (72000000/100000) * (1/72000000) = 10us
*/




#include "stm32f10x_it.h"

unsigned int Task_Delay[NumOfTask]={0};

回复

使用道具 举报

发表于 2016-8-18 10:08:25 | 显示全部楼层
定时器中断里对这个变量减1,while循环判断这个值为0时就执行语句,起到非阻塞延时的作用
回复 支持 1 反对 0

使用道具 举报

发表于 2016-8-19 22:00:24 来自手机 | 显示全部楼层
你这个延时很高级的,在模拟操作系统的时间片。
回复 支持 反对

使用道具 举报

发表于 2016-8-19 22:22:17 | 显示全部楼层
你这个延时很高级的,在模拟操作系统的时间片。别问我是怎么知道的,因为我是复制的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-6 14:00:31 | 显示全部楼层
fire 发表于 2016-8-19 22:00
你这个延时很高级的,在模拟操作系统的时间片。

好的,谢谢火哥,虽然还是没懂
回复 支持 反对

使用道具 举报

发表于 2016-9-6 15:04:19 | 显示全部楼层
时钟变化1次是T, T=1/f,要定时多久那么就是Ticks * T。
首先f = 72MHz, 那么T = 1 / 72000000;
其次,Ticks是自己要延时的时间, 自己写的话其实写72就是1us, 720就是10us。只不过例程中它是直接获取自时钟的数据,看起来麻烦一点而已。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 15:41 , Processed in 0.030116 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表