528|1

73

帖子

1

TA的资源

一粒金砂(高级)

【极海APM32F407 Tiny Board】systick时钟测试 [复制链接]

测试下使用systick时钟做延时函数,来测试下延时时间。

 

一、systick时钟源

systick是一个 24 位自减型系统定时器。

时钟树

201.png systick时钟源是HCLK主时钟8分频后的时钟。

 

二、程序部分

2.1、systick.c

#include "main.h"

static __IO u32 TimingDelay;

/*!
 * [url=home.php?mod=space&uid=159083]@brief[/url] Start SysTick
 *
 * @param       None
 *
 * @retval      None
 */
void SysTick_Init(void)
{
    /** SystemFrequency / 1000 = 1ms */
    if (SysTick_Config(SystemCoreClock / 1000))
    {
        /** Capture error */
        while (1);
    }
}

/*!
 * @brief       Precise Delay
 *
 * @param       nTime in milliseconds
 *
 * @retval      None
 */
void SysTick_Delay_ms(__IO u32 nTime)
{
    TimingDelay = nTime;
    while(TimingDelay != 0);
}

/*!
 * @brief       Decrements the TimingDelay
 *
 * @param       None
 *
 * @retval      None
 */
void TimingDelay_Decrement(void)
{
    if(TimingDelay != 0)
    {
        TimingDelay--;
    }
}

在systick中断调用TimingDelay_Decrement()函数。

void SysTick_Handler(void)
{
	TimingDelay_Decrement();
}

2.2、main.c

#include "main.h"
#include "Board.h"


int main(void)
{
	SysTick_Init();
	init_led();
	led2_off();
	led3_on();

    while (1)
    {
			led2_tog();
			led3_tog();
			SysTick_Delay_ms(100);
    }
}

 

三、运行

程序运行后,测试下LED2端口的波形。

200.png 延时时间和程序设置的时间一致。

 

最新回复

对于CM3,CM4内核芯片,都有Systick定时器   详情 回复 发表于 5 天前

回复

1223

帖子

0

TA的资源

纯净的硅(高级)

对于CM3,CM4内核芯片,都有Systick定时器


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

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表