📄 test44x_ca03.c
字号:
//******************************************************************************
// MSP430-TEST44x Demo - Comp_A Used For Simple 2.2V Low Battery Detect
// Description; Two comparator_A reference generators 0.25*Vcc and ~ 0.55V
// are compared for a simple battery check of 2.2V. In the subroutine
// Batt_Check a small capacitor that must be added to P1.6 is first charged
// to 0.25*Vcc and then compared to ~ 0.55V. If Vcc, assumed to be the battery
// level is above ~0.55V, P5.1 is toggled, else set. Batt_Check is called
// constantly in an endless loop - in an actual application, Batt_Check
// should be called very infrequent to save power.
// ACLK = n/a, MCLK = SMCLK = default DCO =1M
//
// There is a tolerence of the Comp_A reference generator and in the
// device specific datasheet. In most applications, the tolerence of the
// reference generator is more than adequate to detect Low Battery.
//
// MSP430F449
// -----------------
// /|\ | XIN|-
// | | |
// ---|RST XOUT|-
// | |
// +-----|P1.6 P5.1|-->LED
// | | |
// ===.1uf| |
// | | |
// +-----|VSS
//
void Batt_Check(void);
unsigned int i;
//
// Lierda, Inc
// February 2006.03
// Built with IAR Embedded Workbench Version: 3.40A
// ID: MSP430-TEST44X
// DATA:2005-7-12
// REV: 2.0A
// 硬件连接:拨动开关 P17的P2脚拨到ON的位置;
// 该程序是通过调节P1.6口连接的电位器R25,如果输入P1.6口的电压是低于0.55V,
// 则P5.1(LED)口常亮,如果p1,6口的输入电压是大于0.55V,则LED(p5.1)闪烁;
//
//******************************************************************************
#include "msp430x44x.h"
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P5DIR |= 0x02; // P5.1 output
CACTL2 = P2CA0; // P1.6 = CA0
while (1) // Mainloop
{
Batt_Check();
}
}
void Batt_Check(void) {
CACTL1 = CAREF_1 + CAON; // 0.25*Vcc on P2.3, Comp. on
i = 16384; // delay
while(i>0) {
i--;
}
CACTL1 = CARSEL + CAREF_2 + CAREF_1 + CAON; // 0.5Vcc on -, Comp. on
if ((CACTL2 & CAOUT) > 0)
P5OUT ^= 0x02; // P5.1 toggle
else P5OUT |= 0x02; // P5.1 set
CACTL1 = 0x00; // Disable Comp_A, save power
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -