Forum: Mikrocontroller und Digitale Elektronik ADC Luminary Micro


von Graph Oszillo (Gast)


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

von Graph Oszillo (Gast)


Lesenswert?

weiß niemand was?

von holger (Gast)


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;)

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
Noch kein Account? Hier anmelden.