[单片机芯片]

沁恒CH582M开发板-3-Systick滴答定时器的使用

[复制链接]
597|7
手机看帖
扫描二维码
随时随地手机跟帖
梅花香自123|  楼主 | 2022-11-29 23:47 | 显示全部楼层 |阅读模式
TI, ck, ic, sy
3-Systick滴答定时器的使用 滴答定时器的使用非常简单,沁恒已经为我们封装好了现成的库函数:
RV_STATIC_INLINE uint32_t SysTick_Config(uint64_t ticks)
{
    if((ticks - 1) > SysTick_LOAD_RELOAD_Msk)
        return (1); /* Reload value impossible */

    SysTick->CMP = ticks - 1; /* set reload register */
    PFIC_EnableIRQ(SysTick_IRQn);
    SysTick->CTLR = SysTick_CTLR_INIT | //向上计数从0 开始,向下计数从比较值开始;
                    SysTick_CTLR_STRE |
                    SysTick_CTLR_STCLK |  //HCLK 做时基;
                    SysTick_CTLR_STIE |  //使能计数器中断;
                    SysTick_CTLR_STE;   //启动系统计数器STK;
    /* Enable SysTick IRQ and SysTick Timer */
    return (0);                       /* Function successful */
}





使用特权

评论回复
梅花香自123|  楼主 | 2022-11-29 23:48 | 显示全部楼层
下面是一段使用滴答定时器交替闪烁LED灯的代码:
#include "CH58x_common.h"

/*********************************************************************
* @fn      main
* [url=home.php?mod=space&uid=247401]@brief[/url]   主函数
* [url=home.php?mod=space&uid=266161]@return[/url]  none
*/
uint32_t cnt=0;
int main() {
    SetSysClock(CLK_SOURCE_PLL_60MHz);
    SysTick_Config(60000000);//设定嘀嗒时间
    GPIOB_SetBits(GPIO_Pin_15);
    GPIOB_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP_20mA); // 配置推挽输出
    while(1){
        if (cnt%2==0)
        GPIOB_SetBits(GPIO_Pin_15);
        else
        GPIOB_ResetBits(GPIO_Pin_15);
    }
}

/*********************************************************************
* @fn      SysTick_Handler
* @brief   SysTick中断函数
* @return  none
*/
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void SysTick_Handler()
{
    cnt++;
    SysTick->SR=0;//清除中断标志
}

使用特权

评论回复
uptown| | 2023-1-5 11:49 | 显示全部楼层
如果不开启滴答定时器,可以用定时器判断的吗?

使用特权

评论回复
dspmana| | 2023-1-5 11:57 | 显示全部楼层
沁恒的库代码做的非常全面呢。              

使用特权

评论回复
1988020566| | 2023-1-5 13:30 | 显示全部楼层
怎么才能将滴答定时器配置为延时代码。

使用特权

评论回复
updownq| | 2023-1-5 14:35 | 显示全部楼层
这个中断函数是怎么配置的?              

使用特权

评论回复
pentruman| | 2023-1-5 16:21 | 显示全部楼层
这个用法非常简单的。              

使用特权

评论回复
LOVEEVER| | 2023-2-8 09:43 | 显示全部楼层
沁恒封装好了现成的库函数,这点可以,用起来方便

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

1022

帖子

0

粉丝