Task uninterruptable

Gast #3375125
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
Gast #3375433
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
#3376243
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren