Hallo Leute, laut Datenblatt von AT90USB646 kann man zum Beispiel zwischen die Kanäle 2 und 3 (oder 0 und 1) Differentiel x10 verstärken. (Die Auflösung ist dann 8-Bit) Wenn ich zum Beispiel ADC2 mit GND verbinde und ADC3 mit einer positiven Spannung z.B 0.3V Der ADC-Wert entspricht in diesem Fall : 153,stimmt? (AREF ist auf 5V gesetzt) Welchen Kanal muss man bei der Abfrage in main einlesen: readADC(?) 2 oder 3? oder es ist egal? Danke im Vorraus.
Hi >Welchen Kanal muss man bei der Abfrage in main einlesen: readADC(?) 2 >oder 3? oder es ist egal? 13. MfG Spess
#include <avr/io.h> #include <inttypes.h> uint16_t readADC(uint8_t channel) { uint8_t i; uint16_t result = 0; // Den ADC aktivieren und Teilungsfaktor auf 64 stellen ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1); // Kanal des Multiplexers waehlen // Interne Referenzspannung verwenden (also 2,56 V) ADMUX = channel | (1<<REFS1) | (1<<REFS0); .... int main(void) { uint16_t result = readADC(0); //Auslesen der analogen Spannungen an Pin 0, // also ADC0. In result steht das Ergebnis. return 0; } Bei der ADMUX habe ich schon 13 eingestellt.soll ich die Funktion auch so abfragen? uint16_t result = readADC(0);
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.