Other Parts Discussed in Thread: MSP430F5132, MSP-FET
主题中讨论的其他部件:Tida-0.0476万,MSP-FET430UIF, MSP-FET
工具/软件:Code Composer Studio
我正在研究一个基于TIDA-0.0476万的solarcharger ,这个源代码和其他示例 的软件现在应该可以使用了。
现在我有一个问题,如果蓄电池电压低于11V ,我初始化比较器,并将控制器置于LPM4中。
但我永远不能再次唤醒控制器,我确定一切正常吗? 我在改变太阳能电池板电压时测量针脚en
我可以在针脚上测量此值。 我还将引脚置于最小en最大电平,但比较器/中断不工作。
我检查了数据表中的所有内容(我想是),以便我查看完整的数据表。
这是蓄电池低于11V的位置:
如果(蓄电池电压<蓄电池最小电压){// BV < 11V turn-off-Boost-Stage (); load_disable; INIT_Comparator_System_Reset(); __bis_sr_register(LPM4); }
初始比较器:
void init_Comparator_System_Reset(void){
SYSTEM_RESET_Mode_ON = 1;
load_Monitor_Mode_on = 0;
//清除所有寄存器
CBCTL0 = CBCTL1 = CBCTL2 = CBCTL3 = CBINT = 0;
CBCTL0 |= CBIPEN + CBIPSEL_0; //启用V+,输入通道cB0
CBCTL1 || CBPWRMD_1; //正常电源模式
CBCTL2 |= CBRSEL; // VREF应用于-terminal
CBCTL3 |= BIT0; //输入缓冲器禁用@WFP 1.0 cB0
//#define CBREF1_10 (0x0A00)/* Comp. B内部 参考1选择2:11/32 */
CBCTL2 || CBRS_1 + CBREF1_10 + CBREF0_10;// VCC应用于R-Ladder;在计算后设置
__DELAY周期(7500); //延迟以使引用稳定
//TI建议在配置比较器以在操作过程中正确的中断行为之后清除CBIFG。
CBINT &=~(CBIFG + CBIIFG); //清除任何错误的中断
CBINT |= CBIE; //启用CBIFG上升沿上的CompB中断(CBIS=0)
CBCTL1 || CBON; //打开比较器B
}
// Comp_B ISR -用于系统重置和过电流保护
#pragma vector=COMP_B_vector
__interrupt void Comp_B_ISR(void){
如果(Load_Monitor_Mode_on){
关闭_升压_阶段;
load_disable;
load_on = 0;
oc_riggered = 1;
oc_trigged_Counter =0;//通过设置标志
对过电流保护采取措施}
如果(System_reset_Mode_on){
PMMCTL0 |= PMMSWBOR; //软件退电重置。 将此位设置为1将触发BOR。 此位是自清除的。
// PMMCTL0 |= PMMSWPOR; //软件开机重置。 将此位设置为1将触发POR。 此位是自清除的。
}
CBINT &=~CBIFG; //清除Comp_B输出中断标志//als hier komt is er altijd een interrupt
}
我忘记了什么?