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
Ich habe jetzt herausgefunden, dass es der Bus Fault Interrupt ist. Sagt mir aber trotzdem noch nichts. Also trotzdem bitte Hilfe :-( Jan
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.
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.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.