Forum: Mikrocontroller und Digitale Elektronik MSP 430 C-Programm verstehen


von Marcus M. (marcus)


Angehängte Dateien:

Lesenswert?

Hi Leute,
ich bin dabei überhaupt mal zu versuchen den Microcontroller zu
verstehen.
Ich betrete dabei völliges Neugebiet für mich.

Zu meiner Hardware:
Ich habe den MSP 430 mit FG439. Eine fertige Schaltung mit dem Namen
MSP 430 Watch and Altimeter von TI.
Ich hoffe diese Angaben reichen.

Nun habe ich als erstes versucht das C Programm der blinkenden LED zu
verstehen:
#include  <msp430xG43x.h>

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;             // Stop WDT
  FLL_CTL0 |= XCAP18PF;                 // Set load capacitance
  ADC12CTL0 = SHT0_2 + ADC12ON;         // Set sampling time, turn on
ADC12
  ADC12CTL1 = SHP;                      // Use sampling timer
  ADC12IE = 0x01;                       // Enable interrupt
  ADC12MCTL0 = INCH_8;                  // Channel A8 (VERef+)
  ADC12CTL0 |= ENC;                     // Conversion enabled
  P1DIR |= 0x01;                        // P1.0 output

  for (;;)
  {
    ADC12CTL0 |= ADC12SC;               // Sampling open
    _BIS_SR(CPUOFF + GIE);              // LPM0, ADC12_ISR will force
exit
  }
}

// ADC12 interrupt service routine
#pragma vector=ADC_VECTOR
__interrupt void ADC12_ISR (void)
{
    if (ADC12MEM0 < 0x7FF)
      P1OUT &= ~0x01;                   // Clear P1.0 LED off
    else
      P1OUT |= 0x01;                    // Set P1.0 LED on
    _BIC_SR_IRQ(CPUOFF);                // Clear CPUOFF bit from 0(SR)
}

Nun kann ich zwar einiges mit C Codes anfangen, da ich aber keinen Plan
vom Microcontroller habe, komme ich nicht recht weiter.

Mein Ziel ist es einen AD-Wandler und DA-Wandler zu gebrachen und die
Einlesewerte natürlich auch zu speichern.

Nur bewege ich mich mit all den Datenblättern von TI und sonstigen pdfs
aus dem Netz völlig im Dunkeln.

Es wäre toll wenn mir jmd dabei helfen könnte die AD und DA Wandlung
und überhaupt den Controller zu verstehen.

Danke an alle die Antworten!
Gruss Marcus

von MartinK (Gast)


Lesenswert?

Im Prinzip reichen für die Einführung die User Guides,
Datenblätter, Beispielprogramme etc...
Es gibt aber auch ein deutsches Buch:
"Das große MSP 430 Praxisbuch"
Sonderangebot bei http://www.terrashop.de/77234299/artikel.php

MartinK

von tenner (Gast)


Lesenswert?

Das "Das große MSP 430 Praxisbuch" kannst du getrost in die Tonne
kloppen (es sei denn, du kannst nicht englisch lesen u. verstehen), in
den Datenblättern und AppNotes steht es Verständlicher und
ausführlicher.

In der Zeile

  ADC12IE = 0x01;                       // Enable interrupt

schaltest du den Interrupt für den ADC Kanal A0 ein, mit

  ADC12MCTL0 = INCH_8;                  // Channel A8 (VERef+)

activierst du aber den Kanal A8.
Für Kanal A0 ist zwar der Interrupt eingeschaltet, aber der Kanal ist
nicht aktiviert, somit wird nie ein Interrupt ausgelöst.
Der Kanal A8 ist zwar aktiviert, aber der Interrupt wurde nicht
eingeschaltet. Somit löst dieser auch niemals einen Interrupt aus.

Abgesehen davon müssen die Portleitungen zunächst mit PxSEL als
ADC-Eingang konfiguriert werden...

von Marcus M. (marcus)


Lesenswert?

Hi Leute, danke für die Antworten.
Also das Buch hole ich mir vielleicht noch, bekommen aber auch noch ein
anderes Buch über den Mikrocontroller. Nun war das von mir vielleicht
ungeschickt einen C-Code oben einfach reinzustellen. Also was ich genau
möchte: Eine Eingabe der Messwerte einer Verstärkerschaltung, die ich
noch basteln muss, über einen AD Wandler. So und da komm ich ins
Rotieren.
Ich möchte mittels zwei Messelektroden eine Imedanz messen.
Hierzu habe ich nun besagten Mikrocontroller. Mein Problem liegt aber
eher darin, dass ich nicht weiß wie ich den Controller mittels C-Code
richtig ansteuere. Der Mikrocontroller hat meines Wissens einen 16 Bit
AD Converter und hierzu brauche ich eine Routine in C.

Gruss Marcus

von Marcus M. (marcus)


Angehängte Dateien:

Lesenswert?

Hier ist noch ein Info pdf, also kein Datenblatt, über den Typ von
Mikrocontroller den ich hier habe.

gruss Marcus

von Marcus M. (marcus)


Lesenswert?

So ich habe mir jetzt ein tolles Buch geliehen. Werde mich wohl noch
entscheiden müssen zwischen Assembler und C.
So jetzt lese ich erst mal.
Melde mich.

von harry (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.