主题中讨论的其他器件: MSP430FR5969
您好!
我知道 MSP430FR5994具有16通道比较器模块、并且一次只选择其中一个比较器输入引脚作为输入。
我想在低功耗模式下使用三个比较器通道来节省电流消耗。 是否可以在 MSP430FR5994中使用三个通道或在 LPM3中使用 MSP430FR5969?
相关信息
勒格勒瓦斯
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我知道 MSP430FR5994具有16通道比较器模块、并且一次只选择其中一个比较器输入引脚作为输入。
我想在低功耗模式下使用三个比较器通道来节省电流消耗。 是否可以在 MSP430FR5994中使用三个通道或在 LPM3中使用 MSP430FR5969?
相关信息
勒格勒瓦斯
您好 Mitch、
感谢您的意见...
我想在低功耗模式3或4中使用 MSP430FR5994的比较器通道12和13。
尝试以下代码:
#include "main.h"
int main (空)
{
P3DIR |= BIT5;// P3.5输出方向
P3SEL1 |= BIT5;//在 P3.5/CEOUT 上选择 CEOUT 功能
//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;
//设置 Comparator_E
CECTL0 = CEIPEN | CEIPSEL_12 | CEIPSEL_13;//启用 V+、输入通道 CE12和 CE13
CECTL1 = CEPWRMD_0 | CEMRVS_H;//高速功率模式 和与阶梯的共享基准
CECTL2 = CEREFL_2 | CERS_2 | CERSEL | CEREF00 | CEREF02 | CEREF03 | CEREF04;// VREF 应用于-terminal
CECTL3 = BIT1;//输入缓冲器禁用@P1.1/CE1
CECTL1 |= CEON;//打开 Comparator_E
_low_power_mode_4 ();
}
如果我仅使用比较器通道12或13、则可以正常工作、但在选择了两个通道的情况下、仅当通道13电压高于 Vref 时、LED 才会亮起。
您好、莱格勒、
比较器一次只能读取1个输入通道。 在代码中、您有一行
CECTL0 = CEIPEN | CEIPSEL_12 | CEIPSEL_13;//启用 V+、输入通道 CE12和 CE13
您实际上正在对 CEIPSEL_12和 CEIPSEL_13位进行"或"运算-以二进制表示为1100 | 1101 = 1101
这就是为什么通道13 "工作"、通道12不"工作"的原因。
CEIPSEL 是一个4位寄存器(转换为通道0 -通道15)、因此一次只能写入1个通道:
如果您要同时检查通道12和13、则必须在代码中单独检查每个通道。 例如:
CECTL0 = CEIPEN | CEIPSEL_12 //在此处插入通道12操作 CECTL0 = CEIPEN | CEIPSEL_13 //在此处插入通道13操作
希望这能让一切都清除!
Mitch