Forum: Mikrocontroller und Digitale Elektronik Probleme mit SYST_Handler Funktion


von Bbbbb (abcmann)


Lesenswert?

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

: Verschoben durch Moderator
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.