mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik msp430f169 adc dac


Autor: marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ich habe folgendes Problem, wenn ich den ADC12 und den DAC12 zusammen 
verwenden möchte wird keine ADC wandlung ausgeführt. die idee ist 
folgende adc lesen -> dsv -> dac ausgabe

ich habe mich im wesentlichen an die ti beispiele gehalten. was geht ist 
die beiden teile getrennt von einander zu betreiben, also adc lesen und 
nix weiter tun. dac init und werte ausgeben. zusammen tuts nicht :(!
kennt jemand das problem und kann mir vielleicht weiter helfen.

thx marcel.

Source:
void init_DAC(void)
{
  volatile int a;
  ADC12CTL0 = REF2_5V + REFON;              // Internal 2.5V ref on
  for(a=0;a<=0x658;a++)
  {}
  DAC12_0CTL = DAC12IR + DAC12AMP_0 + DAC12ENC;   // Internal ref gain 1
}
void set_DAC(int data)
{
  DAC12_0DAT = data;
}



void main(void)
{
  volatile unsigned int i;
  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  P6SEL |= 0x01;                            // Enable A/D channel A0
  ADC12CTL0 = ADC12ON+SHT0_2; // Turn on and set up ADC12
  ADC12CTL1 = SHP;                          // Use sampling timer
  ADC12MCTL0 = SREF_1;                      // Vr+=Vref+

  for ( i=0; i<0x3600; i++)                  // Delay for reference start-up
  {
  }
  init_DAC();
  DAC12_0CTL &= ~DAC12ENC;
  ADC12CTL0 |= ENC;                         // Enable conversions
  ADC12MEM0 = 0;
  while (1)
  {
    ADC12CTL0 |= ADC12SC;                   // Start conversion
    while ((ADC12IFG & BIT0)==0);
    _NOP();  
    DAC12_0CTL |= DAC12ENC;
    set_DAC(0x6b0);// SET BREAKPOINT HERE
  }
}

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum schaltest Du in init_DAC das Bit DAC12ENC in DAC12_0CTL ein, um es 
in main unmittelbar danach wieder auszuschalten?

Du kannst (und solltest) DAC12ENC gesetzt lassen und musst zur Ausgabe 
auf den DAC lediglich DAC12_0DAT/DAC12_1DAT beschreiben.

Also: Setze das Bit in init_DAC und lass es gesetzt.

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.