求助:CH582M嘀嗒定时器使用

根据技术社区中的帖子(帖子中是CH573、CH579两款MCU)讲解,实现了CH582的嘀嗒定时器,但是无法实现定时1ms的效果。


代码如下:

uint32_t mstime = 0;
int main()
{

    SetSysClock(CLK_SOURCE_PLL_60MHz);
    DelayMs(5);
    DebugInit();
    PRINT("start\n");


    SysTick_Config(60000);//设定嘀嗒时间

    while(1){
        if (mstime % 1000 ==0)
            PRINT("time!");
    }
}
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void SysTick_Handler()
{
    mstime++;
    //SysTick->CTLR &= ~(1 <<31);//按照数据手册清零该标志位,不能跳出中断。
    SysTick->SR = 0;
}


计数时间的设置与计数时钟周期有关。详细可以参考这篇博客CH579 CH5573 CH582 嘀嗒定时器使用 - debugdabiaoge - 博客园 (cnblogs.com)

针对您当前问题可以根据这个尝试修改一下。

image.png


感谢回复,我已经找到问题了。我的那个代码在申明time变量的时候没有加volatile关键字,加上以后就好了。


只有登录才能回复,可以选择微信账号登录