www.mikrocontroller.net

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


Autor: Marcus Moser (marcus)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: MartinK (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: tenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Marcus Moser (marcus)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcus Moser (marcus)
Datum:
Angehängte Dateien:

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

gruss Marcus

Autor: Marcus Moser (marcus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal paar Beispielprogramme von TI, unter Anderem auch von der
AD-Wandlung:
http://focus.ti.com/mcu/docs/generalcontent.tsp?fa...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.