Forum: PC-Programmierung Task uninterruptable


von Michael H. (Gast)


Lesenswert?

Hallo,

ich habe ein Funktion, die Hardware abfragt: Ich habe ein Sample und 
Hold Glied, das von einem ADC ausgelesen wird. Kommt jetzt ein anderer 
Task vor dem Auslesen dazwischen: Ergebnis ist kaputt.
Wie kann ich dem Scheduler sagen, dass er die eine Funktion nicht 
unterbrechen darf?
Michael

von Brazzo (Gast)


Lesenswert?

Das SampleNHold Glied sollte ja die spannung halten ... Hardware? 
Schema?

von Bruder Davis (Gast)


Lesenswert?

Off. 16:1

Und ich hörte eine große Stimme aus dem Tempel, die sprach zu den sieben 
Engeln: Gehet hin und gießet aus die Schalen des Zorns Gottes auf die 
Erde!

von Michael H. (Gast)


Lesenswert?

Hardware: Ist halt ein IC, da kann ich nicht viel ändern: 
http://www.linear.com/product/LTC2355-14

Ich bräuchte halt sowas wie bei Mikrocontrollern "clear interrupt 
enable"...

von Michael H. (Gast)


Lesenswert?

Update: Ich habe das mal geinlined, jetzt scheint das Problem nicht mehr 
aufzutreten. Aber der ADC misst trotzdem noch ungenau. Shit.

von Reinhard Kern (Gast)


Lesenswert?

Michael H. schrieb:
> Wie kann ich dem Scheduler sagen, dass er die eine Funktion nicht
> unterbrechen darf?

Windows, Linux, RTOS (welches von den vielen) oder eigenes System?

So ins Blaue hinein würde ich sagen, falsches Design - S&H (woher 
gesteuert auch immer) sollte einen Interrupt auslösen, in der ISR wird 
der ADC ausgelesen und zwar mit garantierter Reaktionszeit. Gibt es die 
nicht, wie bei Linux oder Windows, ist das Problem auch nicht 
zuverlässig lösbar.

Alle anderen Interrupts zu sperren geht nur in einem selbstgeschriebenen 
System, und dann muss man alle Nebenwirkungen überschauen können (z.B. 
dass kein anderer Event mehr eine garantierte Reaktionszeit hat). Es 
muss also entsprechend einfach sein, ev. ein extra Controller dafür.

Gruss Reinhard

von (prx) A. K. (prx)


Lesenswert?

Michael H. schrieb:
> Wie kann ich dem Scheduler sagen, dass er die eine Funktion nicht
> unterbrechen darf?

Willkommen im Reich der Device Driver. Das ist deren Domäne.

Einfacher: Per µC auslesen und über USB oder Serielle dem PC mitteilen.

> Update: Ich habe das mal geinlined, jetzt scheint das Problem nicht mehr
> aufzutreten.

Das stört den Scheduler überhaupt nicht. Sicher, dass du an der 
richtigen Stelle suchst?

: Bearbeitet durch User
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.