Forum: Mikrocontroller und Digitale Elektronik zwei Stromsensoren auslesen mit interrupt


von gerald (Gast)


Lesenswert?

Hallo,
ich will zwei Stromsensoren auslesen, einen für kleinen und einen für 
große Ströme.
Nun nutze ich einen Interrupt von 100ms

Sollte man jetzt einfach immer beide ADC Eingänge einlesen und in zwei 
getrennte Arrays schreiben?
Oder irgendwie in Abhängigkeit der Werte mal den Einen oder nur den 
anderen benötigten ADC einlesen?
Wie sie blockiert das den Controller...oder ist das lesen der zwei ADc 
unproblematisch

von public (Gast)


Lesenswert?

gerald schrieb:
> Sollte man jetzt einfach immer beide ADC Eingänge einlesen und in zwei
> getrennte Arrays schreiben?

Wo ist dein Code?

> Oder irgendwie in Abhängigkeit der Werte mal den Einen oder nur den
> anderen benötigten ADC einlesen?

Was ist deine Anforderung? Was ist der Plan?

> Wie sie blockiert das den Controller...oder ist das lesen der zwei ADc
> unproblematisch

Was für ein Controller? Welcher ADC?

beste grüße
public

von gerald (Gast)


Lesenswert?

wo wäre der unterschied?!?
Warum ist die beschaltung des ADCs wichtig..wenn ich wie geschrieben 
beide eingänge benutze!? für beide Kanäle?!
Die Anfroderung hatte ich ja genannt ..alle 100ms Werte einlesen...

Wenn es welche gibt, dann bitte nennen, dann kann ich ja was anderes als 
z.B. den Xmega oder STM32 z.B. einsetzen..

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Für sowas benutze ich meistens den 'ADC Fertig' Interrupt, der etwa 
folgendes macht:

1. Derzeitigen Stand des Multiplexers einlesen und per switch/case die 
einzelnen Kanäle behandeln.
2. in jedem case den Wert vom ADC holen und in die entsprechende 
(globale) Variable speichern.
3. Multiplexer auf den nächsten Kanal setzen und das switch-case 
verlassen.

4. ADC starten und die ISR verlassen.

von Falk B. (falk)


Lesenswert?

@ gerald (Gast)

>ich will zwei Stromsensoren auslesen, einen für kleinen und einen für
>große Ströme.

Mit welcher Schnittstelle? SPI, I2C?

>Nun nutze ich einen Interrupt von 100ms

Hoffentlich richtig mit einem Flag für die Hauptscheife, siehe 
Interrupt.

>Sollte man jetzt einfach immer beide ADC Eingänge einlesen und in zwei
>getrennte Arrays schreiben?

Kann man machen.

>Oder irgendwie in Abhängigkeit der Werte mal den Einen oder nur den
>anderen benötigten ADC einlesen?

Geht auch.

>Wie sie blockiert das den Controller...

Im Regelfall nicht.

>oder ist das lesen der zwei ADc unproblematisch

Welche 2 ADC? Am Anfang ging es noch um Stromsensoren, welche AUSGELESEN 
werden sollen.

>wo wäre der unterschied?!?
>Warum ist die beschaltung des ADCs wichtig..wenn ich wie geschrieben
>beide eingänge benutze!? für beide Kanäle?!
>Die Anfroderung hatte ich ja genannt ..alle 100ms Werte einlesen...

Lies mal ganz DRINGEND was zum Thema Netiquette !!!

Wir können und wollen nicht hellsehen!

von gerald (Gast)


Lesenswert?

Danke Matthias..werde ich nachher mal so weiter verfolgen
@Falk...so wie ich schrieb..zwei Sensoren auslesen..und ADC...
Also analoge Sensoren am ADC angeklemmt...

von spontan (Gast)


Lesenswert?

Hallo Gerald,

was willst du eigentlich hören?

Du hast noch keinen Controller gewählt, oder?
Suchst du einen Controller?

Du hast noch kein Konzept zum Einlesen von ADC-Werten, oder?
Suchst du ein Konzept?

Hast du Fragen zum Interrupt (blockieren?)?
Stell sie.

ABer schmeiß keine Brocken hin, die keiner verstehen kann.

von Falk B. (falk)


Lesenswert?

@gerald (Gast)

>@Falk...so wie ich schrieb..zwei Sensoren auslesen..und ADC...
>Also analoge Sensoren am ADC angeklemmt...

Denkst du, dass wir uns vor deinem Geschreibsel in den Staub werfen?

Wenn einer schreibt, "zwei Stromsensoren auslesen", dann vermutet der 
Fachmann, dass es sich um aktive Sensoren handeln, welche über SPI, I2C 
oder eine ähnliche Schnittstelle AUSGELESEN werden.

DU hast aber nur einen Sensor, der eine Spannung ausgibt, welche mit dem 
(internen?) ADC deines Mikrocontrollers gemessen wird. Diesen Vorgang 
bezeichnet man keinesfalls als "Sensor auslesen".

Wenn man alle 100ms zwei ADC-Kanäle lesen will, ist das im allgemeinen 
Peanuts, so ein Lesevorgang dauert ein paar Dutzend Mikrosekunden. Da 
muss man nicht groß optimieren und man braucht auch selten einen 
ADC-Interrupt dazu.

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.