• 18.04.2024, 04:36
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

johnbesel

unregistriert

MSP430 ADC mit mehreren kanälen

Mittwoch, 17. August 2005, 14:01

Hallo alle zusammen.
kennt sich jemand mit MSP430 aus.

ich habe volgendes Problemm.
Ich will ADC benutzen und zwar mit mehreren kanälen. MitADC12MEM0 klappt es bei mir. Allerdings sobald ich ADC12MEM1 benutzen will bekomme ich keine Werte.

ich habe bestimmt kleinen Fehler im Programm, den ihr sofort sieht.

danke für die Hilfe

Hier ist Mein Quelltet:
#include <msp430x14x.h>
#include <stdio.h>



#define FALSE (0 == 1)
#define TRUE (0 == 0)

unsigned char rf_buf[8],
unsigned int adc1,adc2;



void main(void) {
// P6SEL = BIT0; // Kanal 1
P6SEL &#124;= 0x03; // Kanal 1 + 2
ADC12CTL0 = REF2_5V + REFON + SHT0_2 + ADC12ON + MSC ;
// ADC12CTL0 = REF2_5V + REFON + SHT0_6 + ADC12ON;
ADC12CTL1 = SHP +CONSEQ_1; //Sobald ich CONSEQ_1 reintue läuft überhaupt nicht mehr, als wäre kein Interrupt ausgelöst.???
// ADC12MCTL0 = SREF_1 + INCH_0; // Kanal 1
ADC12MCTL0 = SREF_1 + INCH_0; // Kanal 1 + 2
ADC12MCTL1 = SREF_1 + INCH_1; // Kanal 1 + 2
// ADC12MCTL0 = SREF_1 + INCH_10;
// ADC12IE = 0x01; // ???
ADC12IE = 0x01; // ???
ADC12CTL0 &#124;= ENC;
WDTCTL = WDT_ADLY_250;
IE1 &#124;= WDTIE;
_EINT();
for (;;) {
_BIS_SR(LPM0_bits);
_NOP();
sprintf(rf_buf,"%d\r",adc2); //
rf_poi = rf_buf;
}
}

interrupt [WDT_VECTOR] void wdt_isr(void) {
ADC12CTL0 &#124;= ADC12SC;
}

interrupt[ADC_VECTOR] void ADC12ISR (void) {
adc1 = ADC12MEM0; // Kanal 1
adc2 = ADC12MEM1; // Kanal 2 Hier bekomme ich keine Werte / / /zurück WARUM????
_BIC_SR_IRQ(LPM0_bits);
}

int __low_level_init(void) {
WDTCTL = WDTPW + WDTHOLD;
return 1;
}

Re: MSP430 ADC mit mehreren kanälen

Mittwoch, 17. August 2005, 15:00

Hi

kann dir bei dem MC nicht helfen. Aber an deiner Stelle würde ich es evtl. mal bei http://www.mikrocontroller.net versuchen.

Gruß MISZOU

Re: MSP430 ADC mit mehreren kanälen

Samstag, 27. August 2005, 22:41

ich würde es mit sequence of channels versuchen, also

ADC12CTL1=SHP+CONSEQ_3; // sampcon by timer, repeat-sequence-of-channels
ADC12MCTL0=INCH_0; // channel a0 (p6.0)
ADC12MCTL1=INCH_1+EOS; // channel a1 (p6.1), end-of-sequence