Forum: Compiler & IDEs Atmega 8535 - Mehrere ADC Eingänge vergleichen


von Lars W. (Gast)


Lesenswert?

Guten Morgen,

Ich habe folgendes Problem. Ich möchte an 4 Eingängen des AD-Wandler 
meines Mikrocontrollers analoge Signale anlegen. Diese sollen dann 
miteinander verglichen werden und der größte Wert soll gespeichert 
werden.
Ein bekannter riet mir zu einem Array, allerdings weiß ich leider nicht 
wie das funktioniert und das Tutorial hat mir irgendwie auch nicht 
weiterhelfen können.
Könnte mir einer von euch da evtl weiterhelfen. Denn ich steh da leider 
Gottes gerade echt auf dem Schlauch. :D

Ich bedanke mich schon mal im Voraus für eure Hilfe

von Karl H. (kbuchegg)


Lesenswert?

Lars W. schrieb:
> Guten Morgen,
>
> Ich habe folgendes Problem. Ich möchte an 4 Eingängen des AD-Wandler
> meines Mikrocontrollers analoge Signale anlegen. Diese sollen dann
> miteinander verglichen werden und der größte Wert soll gespeichert
> werden.
> Ein bekannter riet mir zu einem Array,

Na ja.
Für 4 Werte ist das noch leicht overkill.
Man kann es machen, man wird es sogar machen wenn wir über 50 Eingänge 
sprechen, aber man muss es bei 4 Werten noch nicht machen.

> allerdings weiß ich leider nicht
> wie das funktioniert und das Tutorial hat mir irgendwie auch nicht
> weiterhelfen können.

Dann vergiss das Tutorial für grundlegende C-Fragen und kauf dir ein 
C-Buch.
Arrays werden da ungefähr irgendwo im ersten Viertel des Buches 
durchgenommen. Gefolgt von noch tausend Dingen die du nicht weißt, die 
du aber wissen solltest, wenn du programmieren willst.

von Lars W. (Gast)


Lesenswert?

Was rätst du mir anstelle einer Lösung mit Arrays?
Ein C Programmierungs Buch ist schon unterwegs =)
Danke schonmal

von Karl H. (kbuchegg)


Lesenswert?

Lars W. schrieb:
> Was rätst du mir anstelle einer Lösung mit Arrays?


Ist das eine Fangfrage?
4 Variablen. Für jeden ADC-Wert eine.

von Lars W. (Gast)


Lesenswert?

=) nein war ernst gemeint
ich hatte gedacht es gäbe vlt auch eine andere lösung als über die 
variablen.
aber dann werd ichs wohl einfach mit den 4 variablen machen.
und hab ichs also richtig verstanden array zum vergleich lohnen sich 
erst ab größeren mengen an werten?

von Mike R. (thesealion)


Lesenswert?

Da der AD-Wandler sowieso immer nur einen Kanal zur Zeit Wandeln kann, 
würde ich sogar auf die 4 Variablen verzichten und nur eine benutzen.

Also wandeln, mit Variable vergleichen, wenn größer den neuen Wert 
nehmen, wenn kleiner den alten behalten.

Nach vier Wandlungen kann dann die Variable gespeichert und wieder mit 0 
initialisiert werden. Und schon kann es wieder von vorne losgehen.

von Karl H. (kbuchegg)


Lesenswert?

Lars W. schrieb:

> und hab ichs also richtig verstanden array zum vergleich lohnen sich
> erst ab größeren mengen an werten?

Sagen wirs mal so.
Solange von 4 Werten die Rede ist, bringt ein Array nicht viel.
Ausser natürlich dem Lernfortschritt auch mal mit Arrays und vor allen 
Dingen der Technik 'Abarbeiten von Arrays in Schleifen' gearbeitet zu 
haben.

Mit Arrays muss man natürlich als Programmierer umgehen können, das ist 
schon klar. So gesehen kannst du dir hier einen Aufschub leisten um erst 
mal voran zu kommen. Aber aufgeschoben ist nicht aufgehoben. Irgendwann 
werden Arrays fällig.

von Karl H. (kbuchegg)


Lesenswert?

Mike S. schrieb:

> Also wandeln, mit Variable vergleichen, wenn größer den neuen Wert
> nehmen, wenn kleiner den alten behalten.

Geht natürlich auch.
Hängt halt davon ab, was mit den Werten und dem Maximum weiter passieren 
soll. Denn mit 'nur speichern' ist es ja normalerweise nicht getan.

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.