查看: 4068|回复: 2

[原创] IRD-LPC1768-DEV节拍定时器实现精准定时

[复制链接]

该用户从未签到

2

主题

4

帖子

0

注册会员

Rank: 2

积分
95
最后登录
2019-5-10
发表于 2019-3-5 10:09:09 | 显示全部楼层 |阅读模式
本帖最后由 zjbwxl 于 2019-3-5 10:08 编辑

Cortex-M3给我们提供了一个精准延时的方法—Systick定时器。Systick是一个24位的倒计数器,存在于所有与M3构架的芯片中。在LPC1768中,Systick的时钟源可以是Fcclk或由引脚(STCLK)输入的时钟信号,通过STCTRL寄存器(系统定时器控制和状态寄存器)选择,Systick可以装载2的24次方以内的数(设置STRELOAD),当装载值被减到0时可以选择产生中断,接着计数器被复位,从头开始递减。这样我们就能通过设置装载值得到我们定时的时间。
Systick在1768中有四个寄存器,在不同的M3的芯片中大致一样。


本例程采用P0.7和P0.6做实验,P0.6通过示波器监测。



#include "Blinky.h"
#include "system_LPC17xx.h"


volatile uint32_t msTicks;
void SysTick_Handler(void)
{
        msTicks++;                     
}

__INLINE static void Delay (uint32_t dlyTicks)
{
        uint32_t curTicks;         

        curTicks = msTicks;            // 获取当前值

        while ((msTicks - curTicks) < dlyTicks);//等待,即延时         
        
}




int main(void)
{
        
        SystemInit();
        
LPC_PINCON->PINSEL10 = 0;                  
LPC_PINCON->PINSEL0 = 0;
LPC_GPIO0->FIODIR |= (1<<7);
LPC_GPIO0->FIODIR |= (1<<6);
// SysTick定时器初始化
        if (SysTick_Config(0x05F5E100 / 1000))                        /* Setup SysTick Timer for 1 msec interrupts  */
    {
                while (1);                                                           /* Capture error */
          }
        while(1)
        {
               
                        LPC_GPIO0->FIOSET0 |= (1<<7);
                  LPC_GPIO0->FIOSET0 |= (1<<6);
                        Delay(20);

                        LPC_GPIO0->FIOCLR0 |= (1<<7);
                  LPC_GPIO0->FIOCLR0 |= (1<<6);
                        Delay(40);
               
        }
        
}


测试图片:
20190305_090738.jpg
20190305_083635.jpg
回复

使用道具 举报

  • TA的每日心情
    开心
    2025-6-10 23:03
  • 签到天数: 1502 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4688

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10080
    最后登录
    2025-7-2
    发表于 2019-3-5 10:38:32 | 显示全部楼层
    这个程序的精度肯定会差一些。
    但是楼主的示波器真是让人羡慕啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    28 分钟前
  • 签到天数: 1847 天

    连续签到: 2 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112625
    最后登录
    2025-7-20
    发表于 2019-3-5 11:14:45 | 显示全部楼层
    支持一下
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 23:20 , Processed in 0.091025 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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