void pwm_clock_init() { do { CS->CLRIFG |= CS_CLRIFG_CLR_DCOR_OPNIFG | CS_CLRIFG_CLR_HFXTIFG | CS_CLRIFG_CLR_LFXTIFG; SYSCTL->NMI_CTLSTAT &= ~ SYSCTL_NMI_CTLSTAT_CS_SRC; }while (SYSCTL->NMI_CTLSTAT & SYSCTL_NMI_CTLSTAT_CS_FLG); CS->KEY = 0; } 请告诉我这段代码的作用
时间: 2023-08-19 19:05:19 浏览: 93
DE2_115_CLR.zip_ de2-115 hsmc _FGPA CLR_HSMC_de2-115 clr_de2-11
这段代码是用于初始化 PWM 时钟的函数。PWM(脉冲宽度调制)是一种用于产生模拟信号的技术,通常用于控制电机、调光等应用中。
具体来说,这段代码的功能如下:
1. 使用 do-while 循环来清除时钟系统(CS)模块的中断标志位和 NMI(非屏蔽中断)控制状态寄存器中与时钟系统相关的标志位。
2. 将 SYSCTL 模块的 NMI_CTLSTAT 寄存器的 CS_SRC 位清零,即禁用时钟系统的 NMI 中断源。
3. 在循环中检查 NMI_CTLSTAT 寄存器的 CS_FLG 位,如果该位为1,则继续循环,直到该位为0。这是为了确保时钟系统已经完成初始化并稳定。
4. 将 CS 模块的 KEY 寄存器设置为0,以锁定对 CS 模块其他寄存器的写入操作。
总之,这段代码的作用是初始化 PWM 时钟,并确保时钟系统已经初始化完毕并稳定。这样,在使用 PWM 功能之前,可以保证时钟系统的正常工作。
阅读全文