ADC Luminary Micro

Gast #2499180
Lesenswert?
• ▲
▼
Hallo,

ich habe eine Frage zum Luminary Micro (LM3S8962) ADC. Ich habe mithilfe 
der DriverLib den ADC folgendermaßen initialisiert. Die DriverLib ist 
soweit ich weiß korrekt eingebunden --> ADC.c /.h natürlich dabei (Keine 
Errors und Warnings)
1
  //ADC einschalten  
2
   SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC);
3
  //Abtastrate einstellen
4
  SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS);
5
  //Zum konfigurieren ausschalten
6
  ADCSequenceDisable(ADC_BASE, 3);
7
  //Sequencer 3 (nur 1 Sample), Prozessor getriggert, Priorität 0
8
  ADCSequenceConfigure(ADC_BASE, 3, ADC_TRIGGER_PROCESSOR, 0);
9
  //Im Sequencer 3 wird Sequencenumber 0, Inputchannel ADC0 verwendet-->   ADC_CTL_CH0, Trigger Source gewählt
10
   ADCSequenceStepConfigure(ADC_BASE, 3, 0, (ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END));
11
  //Sequencer einschalten
12
   ADCSequenceEnable(ADC_BASE, 3);
13
  //Prozessor Triggerung einschalten
14
   ADCProcessorTrigger(ADC_BASE, 3);
15
  //Interrupt einschalten
16
  ADCIntEnable(ADC_BASE, 3);
17
  //Interrupt Vektor
18
  IntEnable(33);   //INT_ADC3

Im Startup habe ich den Interrupt Vektor festgelegt.
1
   EXTERN  ADC_ISR                 
2
   DCD     ADC_ISR  ; ADC Sequence 3

Dann habe ich mir eine Interrupt Service Routine erstellt.
1
void ADC_ISR (void)
2
{ 
3
  //Interrupt rurücksetzen 
4
  ADCIntClear(ADC_BASE, 3);
5
  
6
  //Wert einlesen
7
  ADCSequenceDataGet(ADC_BASE, 3, &value);
8
  // Ausgabe auf Display
9
  sprintf(buf, "ADC = %d      ", value);
10
  RIT128x96x4StringDraw(buf, 0, 25, 15);  
11
}
Soweit ich dem Datenblatt entnehmen kann, müsste durch die 
Prozessortriggerung hier 125 * 10^3 mal pro sek die ISR aufrufen. Dies 
funktioniert leider nicht.

Ich habe das Projekt bereits im Simulator, sowie auf der Hardware 
getestet. Leider ohne erfolg.

Ich hoffe ihr könnt mir helfen.
Vielen Dank im Voraus

Graph Oszillo
Gast #2499725
Lesenswert?
• ▲
▼
>Soweit ich dem Datenblatt entnehmen kann, müsste durch die
>Prozessortriggerung hier 125 * 10^3 mal pro sek die ISR aufrufen. Dies
>funktioniert leider nicht.

Ohne sprintf() und Displayausgabe vermutlich schon;)

Antwort schreiben

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.

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.