?? msp430x24x_adc12_01.s43
字號:
;*******************************************************************************
; MSP430x24x Demo - ADC12, Sample A0, Set P1.0 if A0 > 0.5*AVcc
;
; Description: A single sample is made on A0 with reference to AVcc.
; Software sets ADC12SC to start sample and conversion - ADC12SC
; automatically cleared at EOC. ADC12 internal oscillator times sample (16x)
; and conversion. In Mainloop MSP430 waits in LPM0 to save power until ADC12
; conversion complete, ADC12_ISR will force exit from LPM0 in Mainloop on
; reti. If A0 > 0.5*AVcc, P1.0 set, else reset.
;
; MSP430x24x
; -----------------
; /|\| XIN|-
; | | | 32kHz
; --|RST XOUT|-
; | |
; Vin -->|P6.0/A0 P1.0|--> LED
;
; B. Nisarga
; Texas Instruments Inc.
; September 2007
; Built with IAR Embedded Workbench Version: 3.42A
;*******************************************************************************
#include "msp430x24x.h"
;-------------------------------------------------------------------------------
RSEG CSTACK ; Define stack segment
;-------------------------------------------------------------------------------
RSEG CODE ; Assemble to Flash memory
;-------------------------------------------------------------------------------
RESET mov.w #SFE(CSTACK),SP ; Initialize stackpointer
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupADC12 mov.w #SHT0_2+ADC12ON,&ADC12CTL0 ; Sampling time, ADC12 on
mov.w #SHP,&ADC12CTL1 ; Use sampling timer
mov.w #01h,&ADC12IE ; Enable interrupt
bis.w #ENC,&ADC12CTL0 ;
bis.b #01h,&P6SEL ; P6.0 ADC option select
bis.b #BIT0,&P1DIR ; P1.0 output
;
Mainloop bis.w #ADC12SC,&ADC12CTL0 ; Start sampling/conversion
bis.w #CPUOFF+GIE,SR ; LPM0, ADC12_ISR will force exit
jmp Mainloop ; Again
;
;-------------------------------------------------------------------------------
ADC12_ISR; Exit LPM0 on reti
;-------------------------------------------------------------------------------
bic.b #BIT0,&P1OUT ; P1.0 = 0
cmp.w #07FFh,&ADC12MEM0 ; ADC12MEM = A0 > 0.5AVcc?
jlo ADC12_ISR_1 ;
bis.b #BIT0,&P1OUT ; P1.0 = 1
ADC12_ISR_1 bic.w #CPUOFF,0(SP) ; Exit LPM0 on reti
reti ;
;
;-------------------------------------------------------------------------------
COMMON INTVEC ; Interrupt Vectors
;-------------------------------------------------------------------------------
ORG ADC12_VECTOR ; ADC12 Vector
DW ADC12_ISR
ORG RESET_VECTOR ; POR, ext. Reset
DW RESET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -