SysCtlDelay 实际上由 3 条汇编指令实现,一次可以延时 3 个 clock.

例如,初始化系统时钟:

SysCtlClockFreqSet((SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_OSC), 16000000);

那么,可以实现毫秒延时函数为:

void delay_ms(uint32_t ms)
{
  SysCtlDelay(ms*16000/3);
}

但是,这个延时函数有个限制,最多只能延时 805 秒多,因为 最多 0xFF FF FF FF * 3 个 clock,秒数更大的话就溢出了。

要实现更多秒数的延时,可以用循环来实现,例如:

void delay_sec(uint32_t s)
{
  int i;
  for(i=0;i<s;i++)
    SysCtlDelay(16000000/3);
}

但是这样有误差,因为 for 循环控制本身也有几条汇编指令,只能用于大致的计时使用。

最新文章

  1. iOS学习24之UIControl及其子类
  2. Android四大组件之Activity(活动)及其布局的创建与加载布局
  3. PostgreSQL Replication之第十章 配置Slony(4)
  4. 在 SVG 中添加交互性
  5. LeetCode--判断二叉树是否对称
  6. 继续Python爬虫
  7. 国内外主流BI厂商对比
  8. html 数字不转行问题
  9. Hibernate注解开发详解
  10. 深入理解JVM垃圾收集机制,下次面试你准备好了吗
  11. [Swift]LeetCode692. 前K个高频单词 | Top K Frequent Words
  12. Kotlin 检查空类型
  13. VMware虚拟机与Windows文件共享
  14. CentOS 7 安装配置 MySQL
  15. 尚硅谷spring_boot课堂笔记
  16. oracle的start with connect by prior如何使用
  17. python中的import,reload,以及__import__
  18. 199. Binary Tree Right Side View (Tree, Stack)
  19. 20145307陈俊达《网络对抗》Exp6 信息搜集与漏洞扫描
  20. java 管道流PipedInputStream,PipedInputStream和随机访问文件 RandomAccessFile

热门文章

  1. 常见web漏洞修复方法
  2. CDR排钻教程-CorelDRAW服装设计中的排钻技术
  3. Linux(CentOS 7下httpd的安装)
  4. G - Pyramid 题解(打表)
  5. 2018-div-matrix 题解(打表)
  6. 蓝桥杯——四数平方(2016JavaB第7题)
  7. nginx + lua-nginx-module 编译
  8. LeetCode 034 Search for a Range
  9. 「刷题笔记」DP优化-状压-EX
  10. Django----setting.py配置