Zehplusplus
31.05.2010, 20:16
Ich hab meinen Asuro mit der Snake Platine ausgerüstet und folgendes PRoblem dabei gehabt:
Das Auslesen der TempWerte ergab, dass der rechte Wert korrekt erfasst wurde, und der linke Wert abwechselnd korrekt und inkorrekt (annähernd 0), dann korrekt, inkorrekt etc....
Ich hatte die Funktion zum Auslesen aus dem Buch "Mehr SPaß mit ASURO 2". Diese verglichen mit der Funktion "LineData" zeigte eine gewisse Ähnlichkeit. Außer der von mir als Kommentar markierten Befehle, die ich fortan weg lassen werde. Denn es funzt jetzt Kann mir jemand die (auch grobe) BEdeutung dieser/dieses Befehls erläutern und vlt ne persönliche Meinung, ob ich sie auch wirklich weg lassen DARF ?
void TempWerte(unsigned int *data)
{
ADMUX = (1 << REFS0) |/* (1 << REFS1) |*/ IR_LEFT;
ADCSRA |= (1 << ADSC);
while (!(ADCSRA & (1 << ADIF)));
ADCSRA |= (1 << ADIF);
data[0] = ADCL + (ADCH << 8 );
ADMUX = (1 << REFS0) /*| (1 << REFS1) */| IR_RIGHT;
ADCSRA |= (1 << ADSC);
while (!(ADCSRA & (1 << ADIF)));
ADCSRA |= (1 << ADIF);
data[1] = ADCL + (ADCH << 8 );
}
Das Auslesen der TempWerte ergab, dass der rechte Wert korrekt erfasst wurde, und der linke Wert abwechselnd korrekt und inkorrekt (annähernd 0), dann korrekt, inkorrekt etc....
Ich hatte die Funktion zum Auslesen aus dem Buch "Mehr SPaß mit ASURO 2". Diese verglichen mit der Funktion "LineData" zeigte eine gewisse Ähnlichkeit. Außer der von mir als Kommentar markierten Befehle, die ich fortan weg lassen werde. Denn es funzt jetzt Kann mir jemand die (auch grobe) BEdeutung dieser/dieses Befehls erläutern und vlt ne persönliche Meinung, ob ich sie auch wirklich weg lassen DARF ?
void TempWerte(unsigned int *data)
{
ADMUX = (1 << REFS0) |/* (1 << REFS1) |*/ IR_LEFT;
ADCSRA |= (1 << ADSC);
while (!(ADCSRA & (1 << ADIF)));
ADCSRA |= (1 << ADIF);
data[0] = ADCL + (ADCH << 8 );
ADMUX = (1 << REFS0) /*| (1 << REFS1) */| IR_RIGHT;
ADCSRA |= (1 << ADSC);
while (!(ADCSRA & (1 << ADIF)));
ADCSRA |= (1 << ADIF);
data[1] = ADCL + (ADCH << 8 );
}