Gast
#2293418
Hi Leute,
messe bei einem Fensterhebermotor den Aufnahmestrom, bzw. messe eine
Spannung an einem Shunt-Widerstand.
Da ich einen für die Fahrerseite und einen für die Beifahrerseite
benötige, muss ich zwei AD-Werte auslesen. Diese Spannungen liegen an
PINC0 und PINC1.
Habe das Problem, dass egal an welchem AD-Eingang die Spannung über den
eingestellten Wert von Binär 128 übersteigt, beide Motoren abgeschaltet
werden. Ich denke es liegt daran, dass ich für beide Spannungen das ADC
Register abrufe.
Die Kanalwahl funktioniert ja einwandfrei sobald ich jeweils den anderen
auskommentiere.
Irgendwie überschreibt ein AD-Eingang jeweils eine "wert"-Variable, weil
er ja schließlich auch das ADC-Register überschreibt.
Ich brauch schnelle Hilfe und wäre sehr dankbar dafür.
Hab das Hauptprogramm mal angehängt:
int main ()
{
DDRC=0b00000000;
DDRD=0b11001100;
ADCSRA=0b11000001;
while (bit_is_set(ADCSR,6)); // Warten bis Initialisierungsmessung
erfolgt ist
while(1)
{
ADMUX&=~(1<<MUX0);
ADCSRA|=(1<<ADSC);
while (bit_is_set(ADCSRA,6));
wert1=ADC;
ADMUX|=(1<<MUX0);
ADCSRA|=(1<<ADSC);
while (bit_is_set(ADCSRA,6));
wert2=ADC;
if (wert1<128) {endschalter_fahrerseite=1;} else
{endschalter_fahrerseite=0;}
if (wert2<128) {endschalter_beifahrerseite=1;} else
{endschalter_beifahrerseite=0;}
fenster_fahrerseite();
fenster_beifahrerseite();
}
}