void PMM_setRegulatorStatus (uint8_t status) 这个库函数的参数,后面的解析应该是官方弄反了。
看一下这个函数体结合手册 来分析 就可以得出结果 ,来看一下这个函数体
void PMM_setRegulatorStatus(uint8_t status) {
uint8_t currentStatus = LPM45CTL;
currentStatus &= ~(PMMREGOFF);
currentStatus |= status;
LPM45CTL = currentStatus;
}
currentStatus = LPM45CTL; 就是把控制寄存器的值读出来放到 currentStatus 这个变量上,
currentStatus &= ~(PMMREGOFF); 因为PMMREGOFF宏定义为0x0010,所以这个函数就是相当于把
currentStatus 的第四个位(从零开始算)清零,也就是把控制寄存器LPM45CTL的第四位清零。
currentStatus |= status; 这个status是传进来的参数 PMM_REGULATOR_ON或者是PMM_REGULATOR_OFF
当是PMM_REGULATOR_ON的i时候,因为PMM_REGULATOR_ON为0x00,所以currentStatus |= status后
第四位 还是保持着上一步currentStatus &= ~(PMMREGOFF);的清零。,所以最后LPM45CTL寄存器的第四位
是为0的。然后从用户手册可以知道,这个位为0表示的是 这个内部稳压器是工作的 。
因此 是库的说明写反了。
|