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