硬件环境:AC7801x 通用开发板 ATC-LINK
软件环境:keil 5.23
之前都是使用systick实现的delay函数实现周期性调度,这样会是CPU一直停在延时循环中,浪费CPU资源,我们这里增加timer定时器功能,使用定时器周期性产生时间标志来实现调度。
timer模块应该是我们芯片中最简单的一个模块了,寄存器只有那么寥寥几个,就不过多赘述了。
- void Timer_Init(void)
- {
- CKGEN->PERI_CLK_EN_0 |= CKGEN_PERI_CLK_EN_0_TIMER_EN_Msk; ///<GPIO clock en
- CKGEN->PERI_SFT_RST0 |= CKGEN_PERI_SFT_RST0_SRST_TIMER_Msk;
-
- TIMER_CTRL->MCR = 0; //<enable Timer moudle
-
- TIMER_CHANNEL0->LDVAL = 24000 - 1; ///< 1ms
-
- TIMER_CHANNEL0->INIT = 3; ///<enable channel0 and interrupt
-
- NVIC_EnableIRQ(TIMER_CHANNEL0_IRQn);
- }
timer.rar
(651.28 KB, 下载次数: 28)
|