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
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
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...
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
Hier ist noch ein Info pdf, also kein Datenblatt, über den Typ von Mikrocontroller den ich hier habe. gruss Marcus
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.
Hier mal paar Beispielprogramme von TI, unter Anderem auch von der AD-Wandlung: http://focus.ti.com/mcu/docs/generalcontent.tsp?familyId=342&templateId=5246&navigationId=11477&path=templatedata/cm/mcugen/data/msp430_desres_code
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.