?? fet440_adc12_03.s43
字號:
;******************************************************************************
; MSP-FET430P440 Demo - ADC12, Sample A10 Temp, Set P5.1 if temp ++ ~2c
;
; Description: Use ADC12 and the integrated temperature sensor to detect
; temperature gradients. The temperature sensor output voltage is sampled
; every ~125ms and compared with the defined delta values using an ISR.
; Sample time is 256 ADC12CLK cycles which needs to be greater than
; 30us for temperature sensor (see datasheet). ADC12 is operated in
; repeat-single channel mode with the sample and convert trigger sourced
; from Timer_A CCR1. The ADC12MEM0_IFG at the end of each converstion will
; trigger an ISR.
; ACLK = n/a, MCLK = SMCLK = default DCO, ADC12CLK = ADC12OSC
;
; MSP430F449
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; |A10 (Temp) P5.1|-->LED
;
;
; M. Buccini
; Texas Instruments Inc.
; Feb 2005
; Built with IAR Embedded Workbench Version: 3.21A
;******************************************************************************
#include <msp430x44x.h>
ADCDeltaOn EQU 12 ; ~ 2 Deg C delta for LED on
;
;------------------------------------------------------------------------------
ORG 01100h ; Program Start
;------------------------------------------------------------------------------
RESET mov.w #0A00h,SP ; Initialize stack pointer
mov.w #WDTPW+WDTHOLD,WDTCTL ; Stop watchdog
mov.w #SHS_1+SHP+CONSEQ_2,&ADC12CTL1 ; TA trig., rpt conv
mov.b #SREF_1+INCH_10,&ADC12MCTL0 ; Channel A10, Vref+
bis.w #001h,&ADC12IE ; Enable ADC12IFG.0
mov.w #SHT0_8+REF2_5V+REFON+ADC12ON+ENC,&ADC12CTL0 ; Config ADC12
mov.w #OUTMOD_4,&TACCTL1 ; Toggle on EQU1 (TAR = 0)
mov.w #TASSEL_2+MC_2,&TACTL ; SMCLK, cont-mode
ADC_Wait bit.w #001h,&ADC12IFG ; First conversion?
jz ADC_Wait
mov.w &ADC12MEM0,R4 ; Read out 1st ADC value
add.w #ADCDeltaOn,R4 ;
clr.b &P5OUT ; Clear P5
bis.b #02h,&P5DIR ; P5.1 as output
;
Mainloop bis.w #LPM0+GIE,SR ; Enter LPM0, enable interrupts
nop ; Required only for debugger
;
;------------------------------------------------------------------------------
ADC12_ISR;
;------------------------------------------------------------------------------
cmp.w R4,&ADC12MEM0 ; ADC12MEM0 = A10 > R4
jlo ADC_ISR_1 ; Again
bis.b #02h,&P5OUT ; P5.1 = 1
reti ;
ADC_ISR_1 bic.b #02h,&P5OUT ; P5.1 = 0
reti ;
;
;------------------------------------------------------------------------------
; Interrupt Vectors
;------------------------------------------------------------------------------
ORG 0FFFEh ; RESET Vector
DW RESET ;
ORG 0FFEEh ; ADC12 Vector
DW ADC12_ISR ;
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -