fastAn welchen Anschlüssen hängt dein Poti ? 5V und Masse ? Schleifer an ADC0 ?
2.5V, masse und adc0
Hast du schon mal versucht :
Also die Referenzspannung auf intern zu setzen ? Dann sollten 2,56 V am AREF-Pin anliegen. Die dann mit masse ans Poti und den Schleifer wie gehabt an deinen ADC0. Bei deiner Einstellung wird AVCC genommen, der auf 5V liegen sollte (plus 100nF Kerko)Code:ADMUX |= (1<<REFS0) | (1<<REFS1)
Grüße,
Daniel
der Poti war defekt, habe in getauscht und es läuft wie es soll.
danke für die Hinweiße.
MfG exkluski
habe da nochmal eine frage bezüglich der Übertragung, weil ich bekomme die werte auf abfrage angezeigt.
würde sie gern aber als wert von 0.00Volt bist X volt. dacjte ich könnte das so machen wie bei UART mit weil läuft es ja auch
libprintf_flt.a
libm.a und -Wl,-u,vfprintf
eingebunden aber die nachkommastellen sind null.
beim UART benutzte ich sprnitf hier hatte ich dtostrf gedacht ist ja kleiner als die sprintf.Code:case USB_ADC DDRB |= (1<<PB0);//Ausgang PORTB |= (1<<PB0);//High ADCSRA |= (1<<ADSC); // eine Wandlung "single conversion" while (ADCSRA & (1<<ADSC) ) {} // auf Abschluss der Konvertierung warten adc_Value = ADCW; adc_wert = adc_Value*faktor; dtostrf(adc_wert,7,4, Buffer); usbMsgPtr = Buffer; PORTB &= ~(1<<PB0);//Low return sizeof(Buffer);
Du musst die Berechnung entweder als float speichern oder aber innerhalb von dtostr machen. Sonst werden die Nachkommastellen ( die Mantisse) abgeschnitten, da das Ergebnis als uint16 interpretiert wird.
Grüße,
Daniel
Lesezeichen