msp430f2274 ADC10 3 Eingänge nutzen

OP #2438556
Lesenswert?
• ▲
▼
Guten Tag zusammen. Für ein Studienprojekt muss ich mit dem zigbee kit 
ez430rf2480 Daten einlesen. Über den integrierten msp430f2274 möchte ich 
3 Signale über die AD-Wandler Eingänge A2,A3,A4 kontinuierlich wandeln 
um sie weitersenden zu können.

Alle 3 einzeln und separat zu wandeln und weiterzuverarbeiten klappt 
einwandfrei, jedoch alle zusammen ist schon schwieriger. Ich denke, dass 
es mit dem "repeat sequence of channels mode" funktionieren müsste diese 
zu wandeln und dann zu speichern.

Hat jemand einen sample code dafür, denn die von TI scheinen nicht so 
recht zu passen und ich habe sonst keine gefunden


danke im voraus für die antwort
Gast #2438584
Lesenswert?
• ▲
▼
Einfaches Codebeispiel habe ich jetzt nicht zur Hand,
die verschiedenen Modi (inkl. Multichannel) sind
ausreichend im RefManual zum F2274 beschrieben.

Für die Verwendung anderer Module ist's eh gut, sich
mit den Manuals auseinanderzusetzen.
OP #2438698
Lesenswert?
• ▲
▼
ADC10CTL1 = INCH_4 + CONSEQ_3;            // A2,A3,A4 repeat multi 
channel

ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE + REFON + SREF_1 + 
REF2_5V;

  ADC10AE0 = 0x1C;                          // P2.2,3,4 ADC option 
select
  ADC10DTC1 = 0x40;                         // number of conversions -> 
steht so im sample code, aber ich brauch das sampling ja eigentlich in 
einer endlosschleife. nicht nur wie im beispiel 64 mal

  ADC10CTL0 &= ~ENC;
  ADC10SA = 0x200;                        // Data buffer start
  ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion 
ready


das ist das Beispielprogramm ein wenig abgeändert, damits zu meinen adc 
eingängen passt
#2439722
Lesenswert?
• ▲
▼
Hallo Tobias,
mit dem F2274 hab ich noch nicht gearbeitet,
ich poste mal meine init Funktion für den F449 ev. kannst du dir das so 
zusammenschnippseln,
1
void adc_init(void)
2
{
3
    int16 i;
4

5
    // Enable A/D channel A3 to A7
6
    P6SEL |= BIT3 + BIT4 + BIT5 + BIT6 + BIT7;
7

8
    // Turn on and set up ADC12
9
    ADC12CTL0 = MSC + SHT0_2 + ADC12ON + REF2_5V + REFON;
10
    ADC12CTL1 = CSTARTADD_0 + SHS_0 + SHP + ADC12DIV_0 + ADC12SSEL_3 + CONSEQ_1;
11

12
    // Messung xyz
13
    // EOS = 0 / VR+ = VREF+(2.5V) VR- = AVSS(GND) / INCH = A3
14
    ADC12MCTL0 = SREF_1 + INCH_3;
15
    // Messung xyz
16
    // EOS = 0 / VR+ = VREF+(2.5V) VR- = AVSS(GND) / INCH = A4
17
    ADC12MCTL1 = SREF_1 + INCH_4;
18
    // NTC Temperaturmessung
19
    // EOS = 0 / VR+ = VREF+(2.5V) VR- = AVSS(GND) / INCH = A5
20
    ADC12MCTL2 = SREF_1 + INCH_5;
21
    // Akku
22
    // EOS = 0 / VR+ = VREF+(2.5V) VR- = AVSS(GND) / INCH = A6
23
    ADC12MCTL3 = SREF_1 + INCH_6;
24
    // xyz
25
    // EOS = 1 / VR+ = VREF+(2.5V) VR- = AVSS(GND) / INCH = A7
26
    ADC12MCTL4 = EOS + SREF_1 + INCH_7;
27

28
    ADC12MEM5 = 0x00;
29
    ADC12MEM6 = 0x00;
30
    ADC12MEM7 = 0x00;
31
    ADC12MEM8 = 0x00;
32
    ADC12MEM9 = 0x00;
33
    ADC12MEM10 = 0x00;
34
    ADC12MEM11 = 0x00;
35
    ADC12MEM12 = 0x00;
36
    ADC12MEM13 = 0x00;
37
    ADC12MEM14 = 0x00;
38
    ADC12MEM15 = 0x00;
39

40
    // Delay for reference start-up
41
    for ( i=0; i<0x3600; i++);
42

43
    // Enable conversions
44
    ADC12CTL0 |= ENC;
45
}

und mit einem Timer, bzw. im Timerinterrupt starte ich das Sampeln alle 
x ms
1
ADC12CTL0 |= ADC12SC;

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.