Gast
#1629913
Habe folgendes Problem, via INA138 Messe ich über einen Widerstand einen Strom. Vom INA138 gehe ich direkt auf den ADC des ATMEGA. Wenn ich nun mit dem KO auf der Leitung zwischen dem Augang des INA138, dem Pull-up und dem ADC des ATMega Messe, kriege ich regelmässig alle etwa 2ms einen peak, eine spannungsspitze von etwa 4-500mV. An allen andern Pin's des INA138 sind diese nicht zu messen. An der Versogrungsspannung des Pull-up ebenfalls nicht. Deaktiviere ich den ADC, sind die spannungsspitzen weg... sprich es sieht aus, als kämmen die Spannungsspitzen vom ATMEGA... Folgendem Programmabschnitt wird der ADC ausgelesen uint8_t i; uint16_t result2 = 0; ADMUX = mux; ADMUX |= (0<<REFS1) | (0<<REFS0); ADCSRA = (1<<ADEN);// Enable bit (Auf 0 schaltet ADC aus!!) ADCSRA |= (1<<ADSC); // eine ADC-Wandlung while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } result2 = ADCW; // dummy read /* Mittelwert aus 4 aufeinanderfolgenden Wandlungen */ result2 = 0; for( i=0; i<4; i++ ) { ADCSRA |= (1<<ADSC); // eine Wandlung "single conversion" while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } result2 += ADCH; //ADCH // Wandlungsergebnisse } ADCSRA &= ~(1<<ADEN); // ADC deaktivieren (2) result2 /= 4; return (uint8_t) result2; Beim Booten des controllers setze ich folgendes: ADMUX = 0x46; ADCSRA = 0xE0; ADCSRB = 0x08; wogarn könnte das liegen??? jemand eine idee?