Gast
#1512792
Hallo!
Ich verwende den renesas uC mit 16Bit.
Es laufen mehrere Timer, DMA, ADCs, DA, welche sich gegenseitig durch
Interrupts steuern.
Dann starte ich die Signalerfassung, d.h. DMA+ADC+2Timer kommen hinzu
und er nimmt das Signal auf und speichert die Werte vom ADC ins Array
DataBuffer. Dann werden die Daten invertiert, idealisiert, korrigiert
und rufe diesen Codeabschnitt auf.
-->
while( counter < MAXINDEX )
{
// invert data
DataBuffer[counter] = 1023 - DataBuffer[counter];
// DC Offset
DataBuffer[counter] = DataBuffer[counter] - yDCOffset;
// CorrVal
DataBuffer[counter] = (((int16_t(DataBuffer[counter])-512)*yCorrVal) +
512;
counter++;
}
Die while schleife wird ein paar mal durchlaufen und dann bleibt die SW
stehen. Es kommt aber zu keinen Stackoverflow, da die anderen Timer, DA
und DMA voll funktionsfähig weiterarbeiten.
Während der uC den oberen Code ausführt kommt es sicherlich zu einigen
Interrupts. Kann es sein, dass die Rücksprungaddresse verloren geht.