Probleme mit SYST_Handler Funktion

OP #6646070
Servus,

Ich versuche mich momentan an einer LVDT-Schaltung welche den PGA970 
(ARM Cortex M0) von Texas Instruments nutzt. Mein geschriebener Code 
kann bereits Spannungen erfassen und mehr oder weniger PWM-SIgnale 
ausgeben. Allerdings sind diese durch die verwendung von einfachen 
Zählschleifen recht unzuverlässig was die Zeiten angeht. Daher war es 
meine Idee die vorhandene SYST_Handler Funktion zu nutzen um mit dieser 
genaue Zeiten vorzugeben in denen ich auf High bzw Low für das 
PWM-Signal setzen kann. So weit so gut.

Mein Datenblatt gibt leider keine wirklich nützlichen Informationen zu 
dieser Funktion und google machte mich auch nicht wirklich schlauer. In 
meinen Projektfiles habe ich einmal die Config Funktion mit welcher ich 
angeblich die Taktzeit einstellen kann:

void SYST_Config(UL reloadCnt, UL systControl)
{
   /* Program reload value */
   SYST_RVR = reloadCnt;
   /* Clear current value */
   SYST_CVR = 0x0;
   /* Program status & control register */
   SYST_CSR = systControl;

Und die eigentliche SYST_Handler Funktion welche nur ausgeführt werden 
soll wenn der oben eingestellte wert erreicht wird? In diese habe ich um 
ihre funktion zu überprüfen einen Counter eingebaut.

UL Sys_Timer=0;
interrupt void SYST_Handler(void)
{
   /* Disable System tick  counter */
   SYST_CSR &= ~ST_ENABLE;

   /* Add code here */
   if (ST_ENABLE==1)
   {
       Sys_Timer=Sys_Timer+1;
   }

   /* Enable System tick  counter */
   SYST_CSR |= ST_ENABLE;
}
#endif /* SYST_TESTING */

Durch die Nutzung des Counters wurde dann sichtbar dass diese Funktion 
genauso oft durchläuft wie die Mainfunktion auch weshalb ich glaube dass 
hier irgendetwas noch nicht stimmt.
Ich habe außerdem gelesen, dass sehr kurze Timings im reload value 
vermieden werden sollten, da sonst womöglich nur doch die interrupt 
funktion ausgeführt werden könnte. Ist auf diese Art und Weise eine 
Regelung auf bis zu 50µs realisierbar?

MFG Paul

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.