MSP430F449 - ADC12 Busy Flag löscht sich nicht!

Gast #91317
Arbeite zum ersten Mal mit dem ADC12 des MSP430F449. Der Wandler wird im
single-channel, single conversion Mode eingesetzt. Wenn der Timer A
etwa 4x pro Sekunde den IRQ aufruft, wird dort eine steigende Flanke am
Bit ADC12SC erzeugt und dann sofort das ADC12MEM0 gelesen. Da dabei der
Wandler noch nicht fertig ist, werden alte Meßergebnisse ausgewertet.
Jedoch zeigt sich, daß die Wandlung auch wirklich immer neu beginnt
weil schwankende Analogspannungen reproduzierbare Digitalwerte
erzeugen.

Jetzt habe ich zwischen die ADC12SC Flanke und das Lesen vom ADC12MEM0
eine Schleife gebaut:

WaitADC12
bit.w  #0001h, &ADC12CTL1
JNZ  WaitADC12

Der Controller bleibt jetzt endlos in dieser Schleife stehen. Warum
setzt sich das Busy Flag nicht zurück?
Gast
Bei den Beispielen wird statt dem IRQ Flag das ADC12IFG (Daten wurden in
den ADC Speicher geschrieben) ausgewertet. Warum geht es nicht auch
über das Busy Bit?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.