Schau dir doch den C-Code der ASURO Library an, daraus lässt sich doch ganz gut ableiten, wie der entsprechende Assembler-Code aussehen müsste.
Bspw. der linke Liniensensor wird per ReadADC(IR_LEFT,0) abgefragt. ReadADC sieht so aus:
Die SFRs, die da gesetzt und gelesen werden übernimmst du in Assembler - et voila!Code:unsigned int ReadADC(unsigned int mux, unsigned int sleep) { if ((mux) == (BATTERIE)) ADMUX = (1 << REFS0) | (1 << REFS1) | (mux); // interne 2.56V Referenz else ADMUX = (1 << REFS0) | (mux); // Referenz mit externer Kapazitaet if (sleep) Sleep(sleep); ADCSRA |= (1 << ADSC); // Starte AD-Wandlung while (!(ADCSRA & (1 << ADIF))) // Ende der AD-Wandlung abwarten ; ADCSRA |= (1 << ADIF); // AD-Interupt-Flag zuruecksetzen return ADC; // Ergebnis als 16-Bit-Wert }






Zitieren

Lesezeichen