Gast
#308194
hey, möchte gerne kanalA und kanalB am ATMEGA325 einlesen. leider bekomme ich auf kanalA und kanalB immer das gleiche ergebnis (ergebnis der 1ten wandlung). im debug-singlestep-betrieb bekomme ich richtige wandlungsergebnisse. einfügen von kleinen und grossen delays hat keinen erfolg bebracht ?!?! -> was tun ?? - im datenblatt ist nichts vermerkt was darauf hinweist ?!? HILFE !!!! thx Neubi void main(void) { byte x,y; ADCSRA = 0x86; // init ADC (clock,...) x=ADReadResult(0); y=ADReadResult(1); } byte ADReadResult(byte Channel) { word Result=0; ADMUX = Channel; // kanal wechseln ADCSRA |= 0x40; // wandlung starten while(!(ADCSRA & 0x10)); // warten bis wandlung fertig ADCSRA |= 0x10; // int-flag löschen Result = (ADCH << 8) + ADCL; // ergebnis holen return (Result >> 2); // auf 8bit kürzen }