I'm trying to read three consecutive inputs from A0, A1 and A2 with an
'F1232, but only get the first input. I've set ENC to 0 and 1
according to
SLAU049.pdf, section 18.2.1. Here's the section of code that isn't
working:
SetupADC10 mov.w #ADC10SHT_2+ADC10ON+ADC10IE,&ADC10CTL0 ; 16x,
enable
int.
;
Mainloop
; Read A0
bic.w #ENC,&ADC10CTL0
bis.b #01h,&ADC10AE ; ADC10 A0 select and enable
bis.w #ENC+ADC10SC,&ADC10CTL0 ; Start sampling/conversion
bis.w #CPUOFF+GIE,SR ; LPM0, ADC10_ISR will force
exit
mov.w &ADC10MEM,R6 ; Read ADC A0
call #TXW ; Transmit data (four ASCII digits)
mov.b #' ',R6 ; Space
call #TX_CHAR
; Read A1
bic.w #ENC,&ADC10CTL0
bis.b #02h,&ADC10AE ; ADC10 A1 select and enable
bis.w #ENC+ADC10SC,&ADC10CTL0 ; Start sampling/conversion
bis.w #CPUOFF+GIE,SR ; LPM0, ADC10_ISR will force
exit
mov.w &ADC10MEM,R6 ; Read ADC A1
call #TXW ; Transmit data (four ASCII digits)
mov.b #' ',R6 ; Space
call #TX_CHAR
; Read A2
bic.w #ENC,&ADC10CTL0
bis.b #04h,&ADC10AE ; ADC10 A2 select and enable
bis.w #ENC+ADC10SC,&ADC10CTL0 ; Start sampling/conversion
bis.w #CPUOFF+GIE,SR ; LPM0, ADC10_ISR will force
exit
mov.w &ADC10MEM,R6 ; Read ADC A2
call #TXW ; Transmit data (four ASCII digits)
; Send new line
mov.b #0x0D,R6
call #TX_CHAR
mov.b #0x0A,R6
call #TX_CHAR
jmp Mainloop
Leon
--
Leon Heller, G1HSM
leon.heller@leon...
http://webspace.webring.com/people/jl/leon_heller/
---
[This E-mail has been scanned for viruses but it is your responsibility
to maintain up to date anti virus software on the device that you are
currently using to read this email. ]
Leon why not simply use the single or repeat consecutive sequence of
samples mode? To do this you simple set the MSC bit to 1, then set the
end of sequence channel to 0010, and finally enable the first 3
channels. the interrupt will occur automatically after completion of the
third conversion.
This is not as powerful or as flexible as the ADC12, since you cannot
assign channels in to conversion channels, and are stuck with taking the
channels in sequence, but in your case this works fine.
CXheers
Al
Leon Heller wrote:
>I'm trying to read three consecutive inputs
from A0, A1 and A2 with an
>'F1232, but only get the first input. I've set ENC to 0 and 1
according to
>SLAU049.pdf, section 18.2.1. Here's the section of code that isn't
working:
>
>SetupADC10 mov.w #ADC10SHT_2+ADC10ON+ADC10IE,&ADC10CTL0 ;
16x, enable
>int.
>
> ;
>Mainloop
> ; Read A0
> bic.w #ENC,&ADC10CTL0
> bis.b #01h,&ADC10AE ; ADC10 A0 select and enable
> bis.w #ENC+ADC10SC,&ADC10CTL0 ; Start sampling/conversion
> bis.w #CPUOFF+GIE,SR ; LPM0, ADC10_ISR will
force
>exit
> mov.w &ADC10MEM,R6 ; Read ADC A0
> call #TXW ; Transmit data (four ASCII digits)
> mov.b #' ',R6 ; Space
> call #TX_CHAR
>
> ; Read A1
> bic.w #ENC,&ADC10CTL0
> bis.b #02h,&ADC10AE ; ADC10 A1 select and enable
> bis.w #ENC+ADC10SC,&ADC10CTL0 ; Start sampling/conversion
> bis.w #CPUOFF+GIE,SR ; LPM0, ADC10_ISR will
force
>exit
> mov.w &ADC10MEM,R6 ; Read ADC A1
> call #TXW ; Transmit data (four ASCII digits)
> mov.b #' ',R6 ; Space
> call #TX_CHAR
>
> ; Read A2
> bic.w #ENC,&ADC10CTL0
> bis.b #04h,&ADC10AE ; ADC10 A2 select and enable
> bis.w #ENC+ADC10SC,&ADC10CTL0 ; Start sampling/conversion
> bis.w #CPUOFF+GIE,SR ; LPM0, ADC10_ISR will
force
>exit
> mov.w &ADC10MEM,R6 ; Read ADC A2
> call #TXW ; Transmit data (four ASCII digits)
>
> ; Send new line
> mov.b #0x0D,R6
> call #TX_CHAR
> mov.b #0x0A,R6
> call #TX_CHAR
>
> jmp Mainloop
>
>Leon
>--
>Leon Heller, G1HSM
>leon.heller@leon...
>http://webspace.webring.com/people/jl/leon_heller/
>
>---
>[This E-mail has been scanned for viruses but it is your responsibility
>to maintain up to date anti virus software on the device that you are
>currently using to read this email. ]
>
>
>
>
>.
>
>
>Yahoo! Groups Links
>
>
>
>
>
>
>
>
>
>
Reply by Leon Heller●November 9, 20052005-11-09
----- Original Message -----
From: "Onestone" <onestone@ones...>
To: <msp430@msp4...>
Sent: Wednesday, November 09, 2005 2:56 PM
Subject: Re: [msp430] ADC10 problem reading three channels
> Leon why not simply use the single or repeat
consecutive sequence of
> samples mode? To do this you simple set the MSC bit to 1, then set the
> end of sequence channel to 0010, and finally enable the first 3
> channels. the interrupt will occur automatically after completion of the
> third conversion.
>
> This is not as powerful or as flexible as the ADC12, since you cannot
> assign channels in to conversion channels, and are stuck with taking the
> channels in sequence, but in your case this works fine.
Thanks, Al.
I was intending to try that next. It's a neater way to do it, anyway.
Leon
---
[This E-mail has been scanned for viruses but it is your responsibility
to maintain up to date anti virus software on the device that you are
currently using to read this email. ]
Signal Processing Engineer Seeking a DSP Engineer to tackle complex technical challenges. Requires expertise in DSP algorithms, EW, anti-jam, and datalink vulnerability. Qualifications: Bachelor's degree, Secret Clearance, and proficiency in waveform modulation, LPD waveforms, signal detection, MATLAB, algorithm development, RF, data links, and EW systems. The position is on-site in Huntsville, AL and can support candidates at 3+ or 10+ years of experience.