www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC landet beim LM3S6965 im Interrupt-Handler


Autor: Jan R. (superjany)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche zur Zeit den ADC am LM36965 zum Laufen zu bringen. Bisher 
bin ich immer ganz gut mit dem Democode von StellarisWare gefahren. 
Diesmal allerdings weiß ich nicht so recht weiter.

Hier erstmal der Code:


unsigned long ulValue;
  //
  // Enable the first sample sequence to capture the value of channel 0 
when
  // the processor trigger occurs.
  //
  ADCSequenceConfigure(ADC_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);
  ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_IE | ADC_CTL_END | 
ADC_CTL_CH0);
  ADCSequenceEnable(ADC_BASE, 0);
  //
  // Trigger the sample sequence.
  //
  ADCProcessorTrigger(ADC_BASE, 0);
  //
  // Wait until the sample sequence has completed.
  //
  while(!ADCIntStatus(ADC_BASE, 0, false))
  {
  }
  //
  // Read the value from the ADC.
  //
  ADCSequenceDataGet(ADC_BASE, 0, &ulValue);


Bei ADCSequenceConfigure lande ich allerdings in IntDefaultHandler()... 
theoretisch sollte dies aber nicht passieren - schließlich triggere ich 
ja extra nicht über einen Interrupt. Kann mir jemand weiterhelfen?

Vielen Dank schonmal,
Jan

Autor: Jan R. (superjany)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt herausgefunden, dass es der Bus Fault Interrupt ist. Sagt 
mir aber trotzdem noch nichts. Also trotzdem bitte Hilfe :-(

Jan

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_IE | ADC_CTL_END |

Das ADC_CTL_IE stinkt doch geradzu nach Interrupt.
Mach das doch mal weg.

Autor: Jan R. (superjany)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell ist das natürlich ein Indiz für Interrupts und ich habe es 
auch mal getestet. Nach wie vor funktioniert es aber nicht.
Bei dem Interrupt, welcher aufgerufen wird, handelt es sich wie gesagt 
um den Bus Fault Interrupt. Das selbe geschieht auch, wenn ich den 
Democode für die Analog-Komparatoren teste.

Ich wäre echt dankbar für jedes Stück funktionstüchtigen Democode.

Autor: etec (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das ADC-Modul sollte auch freigegeben werden. Ansonsten geht der in eine 
FaultISR.

Funktion heißt: SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC);

Hoffe du hast es noch nicht aufgegeben.

Autor: Jan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War glaube ich damals ne kalte Lötstelle ;-)

Autor: T-Brox (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist zwar schon ne Weile her, aber falls es noch jemand interessiert ;-)

Ich hatte das gleiche Problem und habe es folgendermaßen lösen können:

Ein Dummy Read nach dem "PeripheralEnable" sorgt für zeitlich genügend 
Abstand damit die Initialisierung auch tatsächlich beendet wird, bevor 
das nächste Mal auf das Modul zugegriffen wird.
Steht auch in dieser Form in der Beschreibung der Peripheral Driver 
Library. Dort auch der Hinweis dass dies zum einem "Bus Fault" führt.

Autor: Jan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Stand (Datum) hat deine Beschreibung?

Autor: T-Brox (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Dokument was mir gerade vorliegt heißt SW-DRL-UG-9453 vom 05.09.12 
und ist aus der Software-CD Build 733 für das LM3S8962 Eval kit. Die 
uralte Build 148 (noch von Luminary) hatte diese Info bspw. noch nicht 
drin.

Autor: Jan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau darauf wollte ich hinaus ;-)

Autor: T-Brox (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
besser spät als nie ^^

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.