;******************************************************************************* ; MSP430F20x1 Demo - Comp_A, Detect Threshold, Set P1.0 if P1.1 > 0.25*Vcc ; ; Description: Use comparator_A to detect a voltage threshold Using an ; external potentiometer, an unknown analog voltage is applied to P1.1 ; Comparator_A compares the unknown voltage to an internal reference ; voltage, in this example 0.25*VCC If the interesting voltage is higher ; than 0.25*Vcc, P1.0 is set, if not, P1.0 is reset ; ACLK = n/a, MCLK = SMCLK = default ; ; MSP430F20x1 ; ; /|\ | XIN|; | | | ; -|RST XOUT|; | | | ; R LED ; | | | ; -|VSS ; ; M Buccini / L Westlund ; Texas Instruments Inc ; December 2005 ; Built with IAR Embedded Workbench Version: 3.40A ;******************************************************************************* #include "msp430x20x1.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0280h,SP ; Initialize stackpointer StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT SetupP1 bis.b #001h,&P1DIR ; P1.0 = output mov.b #CARSEL+CAREF0+CAON,&CACTL1 ; 0.25Vcc = -comp, on mov.b #P2CA4,&CACTL2 ; P1.1/CA1 = +comp ; Mainloop bit.b #CAOUT,&CACTL2 ; Test comparator_A output jz OFF ; jmp > if CAOUT reset ; ON bis.b #001h,&P1OUT ; P1.0 = jmp Mainloop ; OFF bic.b #001h,&P1OUT ; P1.0 = jmp Mainloop ; ; ; ; Interrupt Vectors ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; END