查看: 5125|回复: 8

[原创] 【LPC1768】4.系统计时器

[复制链接]
  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
    发表于 2019-2-20 19:50:37 | 显示全部楼层 |阅读模式
    本帖最后由 stm1024 于 2019-2-24 15:45 编辑

    03.png 02.png 01.png SSysTick是ARM的内核,因此在基于此内核的芯片上都是可用的,而且配置方式也大同小异,唯一需要注意的就是时钟来源。
    以下是基于LPC1768的采用Systick做任意时间延时函数,直接上代码:
    1. void Delay_ms(uint32_t ms)
    2. {
    3.     uint32_t temp;
    4.     uint16_t m, n, i;
    5.     SysTick->CTRL = 0; //disable
    6.     m = ms / 100; //100ms数
    7.     n = ms % 100; //不足100ms数
    8.     //m*100 ms
    9.     for(i = 0; i < m; i++)
    10.     {
    11.         SysTick->LOAD = 10000000-1;
    12.         SysTick->CTRL = 5;
    13.         do
    14.         {
    15.             temp = SysTick->CTRL;
    16.         } while((temp & 0x01) && (!(temp & (1 << 16))));
    17.     }
    18.     //n ms(n<100)
    19.     if(n==0)return;
    20.     SysTick->LOAD = 100000*n-1;
    21.     do
    22.     {
    23.         temp = SysTick->CTRL;
    24.     } while((temp & 0x01) && (!(temp & (1 << 16))));
    25.     SysTick->CTRL = 0; //disable
    26.     SysTick->VAL = 0;
    复制代码
    这里采用的是将任意时间分成多个达到100ms和一个不足100ms的,分成两个写。注意前提是系统时钟正确配置为100Mhz,如果是其他频率,则其中的1000000和100000要分别做相应的修改。
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10096
    最后登录
    2025-8-31
    发表于 2019-2-20 22:13:58 | 显示全部楼层
    这就是传说中的阻塞式延迟函数吗?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-4-30 21:50
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    9

    主题

    142

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1208
    最后登录
    2023-2-28
    发表于 2019-2-20 23:03:27 来自手机 | 显示全部楼层
    不错,谢谢分享,支持一下,会用到的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
     楼主| 发表于 2019-2-21 08:03:18 | 显示全部楼层
    yanxinboy 发表于 2019-2-20 23:03
    不错,谢谢分享,支持一下,会用到的。

    当然,由于调用和循环的开销,难以做到非常精确的延时
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    连续签到: 1 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2207
    最后登录
    2025-8-11
    发表于 2019-2-21 20:51:27 | 显示全部楼层
    谢谢分享,这个应该是CM3的都适合
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
     楼主| 发表于 2019-2-23 23:04:10 | 显示全部楼层
    jobszheng5 发表于 2019-2-20 22:13
    这就是传说中的阻塞式延迟函数吗?

    是啊,不跑系统的话,用起来很方便,可移植性也很强
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
     楼主| 发表于 2019-2-26 18:08:42 | 显示全部楼层
    ~~~~!~~~~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
     楼主| 发表于 2019-2-26 18:08:45 | 显示全部楼层
    ~~~~!~~~~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 15:50
  • 签到天数: 1874 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112714
    最后登录
    2025-8-31
     楼主| 发表于 2019-2-26 18:08:47 | 显示全部楼层
    ~~~~!~~~~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-1 03:52 , Processed in 0.105641 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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