PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnisfrage zur Snake/Line Data Funktion



Zehplusplus
31.05.2010, 19: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 );
}

syn_error
31.05.2010, 19:31
ich nehm einfach mal an auf dem teil ist ein atmega8 eingebaut.

damit wird die analog digital converter referenz spannung beeinflusst.
"(1 << REFS0) | (1 << REFS1)" = interne 2.56 volt referenz.
"(1 << REFS0) /*| (1 << REFS1)" = avcc
mehr dazu im datenblatt.