www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem beim Vergleich von ADwandlerwerte zwischen Master und Slave


Autor: smith (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe ein Problem wenn ich die Werte von Adwandler zwischen Master 
und Slave vergleiche.
ich wollte wenn  eine von beide Adwandler kaputt geht dass es in diesem 
Fall ein LED Leuchtet.darüberhinaus lege ich lege ich gleiche spannung 
an ADC von Master uns Slave und dann wird in reihenfolge zwischen ADC(0) 
von Master mit ADC(0) von Slave verglichen dann ADC(1) und soweiter und 
sofort.

wenn ich nur ein kanal von adwandler vergleichen will dann funktioniert 
das aber wenn ich mehrere kanäle vergleichen will dann funktioniert 
nicht.

funktioniert nicht heisst wenn ich gleiche Spannung an ADC(0) und andere 
Spannung an ADC(1) anlege dann leucht den LED obwohl der Differenz ist 
immer kleiner als 150

ich habe meine funktionen angehängt.hoffe dass mir jemand helfen kann
und entschuldigung für meine schlechte Deutsch

danke im voraus

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
smith schrieb:

> funktioniert nicht heisst wenn ich gleiche Spannung an ADC(0) und andere
> Spannung an ADC(1) anlege dann leucht den LED obwohl der Differenz ist
> immer kleiner als 150
  if ( maxi > 150 ) 
        
    PORTC |= (1<<PC3);
    else PORTC &= ~ (1<<PC3);

Und deine LED ist sicher so verschaltet, dass sie leuchtet wenn der Pin 
auf 1 gezogen wird?

Meistens ist das nämlich genau anders rum verschaltet: eine LED wird zum 
leuchten gebracht, indem man den Pin auf 0 setzt.


PORTC: Welchen Prozessor benutzt du? Hat der ein JTAG? Liegt das 
zufällig am PORTC und ist nicht ausgeschaltet?

Autor: smith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich benutze atmega16.habe es auch mit PortA probiert und immer das 
gleiche problem.
ja es ist verschaltet wenn der Pin ein 1 aufgezogen wird

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
smith schrieb:
> ich benutze atmega16.

Gut.
Mega16 bedeutet auf jeden Fall mal JTAGEN per Fuse abschalten

> habe es auch mit PortA probiert und immer das
> gleiche problem.
> ja es ist verschaltet wenn der Pin ein 1 aufgezogen wird

Auch gut.

Woher weißt du, dass deine Differenzen kleiner als 150 sind?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du eine Möglichkeit dir mal die Zahlenwerte anzusehen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach

Die Differenz 2er unsigned short Werte kann per Definition niemals 
negativ sein, da ein unsigned nicht negativ sein kann.

Du kannst das daher nicht so machen
   x = abs ( SlaveValue - adcValue );
  if( SlaveValue > adcValue )
    x = SlaveValue - adcValue;
  else
    x = adcValue - SlaveValue;

dann ist x immer positiv.

Autor: smith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weil ich lege den gleichen Spannung an ADC sowol an Master als auch an 
Slave.
das ganze funktioniert das problem taucht nur wenn ich zum beispiel 4v 
an ADC(0)an Master und Slave und 1v an ADC(1) von Master und Slave.also 
zwie verchieden Spannung aber der Differenz ist immer klein

Autor: smith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> if( SlaveValue > adcValue )
>
>     x = SlaveValue - adcValue;
>
>   else
>
>     x = adcValue - SlaveValue;

die habe ich auch probiert vorhin aber und immer das gleiche

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
smith schrieb:
> weil ich lege den gleichen Spannung an ADC sowol an Master als auch an
> Slave.

Das überzeugt mich nicht.
Der programmtechnische Weg von den gleichen Spannungen bis dann endlich 
die beiden Zahlenwerte miteinander verglichen werden ist weit. Da gibt 
es jede Menge Fehlerquellen.

Sieh zu, dass du einen Blick auf die Zahlen werfen kannst! Alles andere 
ist Stochern im Nebel.

> das ganze funktioniert das problem taucht nur wenn ich zum beispiel 4v
> an ADC(0)an Master und Slave und 1v an ADC(1) von Master und Slave.also
> zwie verchieden Spannung aber der Differenz ist immer klein

Autor: smith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe die werte geändert und das mit zwei LEDS gesteurt damit ich 
sehen kann ob dass überein stimmt.
die werte stimmen schon.
aber was ich nicht verstehe dass wenn ich eine wert von 2,48V die 
enstprechend 991 leuchtet den LED von Slave wenn ich schreibe das LED 
soll leuchten wenn die Wert größer als 1000 was das nicht dem Fall ist.
Ad wandler eingestellt für interne ReferenzSpannung 2,56V

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
smith schrieb:

> Ad wandler eingestellt für interne ReferenzSpannung 2,56V


Vorsicht, die interne Referenzspannung ist nicht exakt 2.56V!
Die streut ganz schön um diesen Wert von µC Exemplar zu µC Exemplar.

Die interene Referenzspannung ist hauptsächlich stabil!
Aber sie ist nicht hauptsächlich 2.56V.

Autor: smith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe bemessen und das programm vergleicht die werte zwischen ADC(0) 
und ADC(1) und nicht zwischen ADC(0) Master und ADC(0) Slave!!!!!
weiss nicht woran das liegt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.