Vielleicht hilft unsigned char anzeige0[5]; anstatt
char anzeige0; ???
gruß Sebastian
Hallo,
ich habe mir für eine Funktion erstellt mit der ich die Analogen Eingänge auslesen kann (ist nahezu 1:1 aus dem Tut von mikrocontroller.net übernommen, bis auf einige bezeichnungen).
Nun habe ich mir in meinem einen AD Kanal ausgelesen und möchte ihn anzeigen.Code://Code zum Auslesen des AD Eingang uint16_t analog_lesen(uint8_t kanal) { uint8_t i; uint16_t result = 0; ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<< ADPS1) | (1<< ADPS0); // Frequenvorteiler auf 128 setzen und AD-Wandler aktivieren ADMUX = kanal; ADCSRA |= (1<<ADSC); while ( ADCSRA & (1<<ADSC) ); for (i=0;i<4;i++) { ADCSRA |= (1<<ADSC); while( ADCSRA & (1<<ADSC) ); result += ADCW; } ADCSRA &= ~(1<<ADEN); //AD-Wandler deaktivieren result /= 4; return result; }
Das Anzeigen von Text auf dem Display klappt, die Funktion ist also i.O. ich hatte so auch schon eine Anzeige des Wertes vom AD-Wandler, dann wurden aber plötzlich nur noch wirre Zeichen angezeigt, was ich mir nicht erklären kann.Code:... uint16_t messwert0 = 0; char ausgabe0; //*** messwert0 = analog_lesen(1); itoa(messwert0, ausgabe0, 10); lcd_gotopos(1,11); lcd_writetext(" "); lcd_gotopos(1,11); lcd_writetext(ausgabe0); ...
Meine Frage ist nun :
habe ich einen Fehler in der Funktion zu auslesen des AD-Wandler oder wandelt due itoa() Funktion den Integerwert nicht richtig um?
Danke schon einmal für die Hilfe
mfG Henry
Vielleicht hilft unsigned char anzeige0[5]; anstatt
char anzeige0; ???
gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Danke, das war es wohl, habe es nun geschafft mir meine 4 Eingänge aufs Display zu bekommen.
Aber kann es sein das die Eingänge sich ganz schön beeinflussen?
Muss ich da noch irgendwie PullDownwiderstände einsetzen um das zu vermeiden?
Habe zum Testen nur ein Poti angeschlossen (Schleifer auf den Eingang und die anderen beiden an die 5V, also als verstellbaren Spannungsteiler).
mfG Henry
Das wäre mir ganz neu.Aber kann es sein das die Eingänge sich ganz schön beeinflussen?
Du meint sicher :Habe zum Testen nur ein Poti angeschlossen (Schleifer auf den Eingang und die anderen beiden an die 5V, also als verstellbaren Spannungsteiler).
und die anderen Beiden an die 5V und GND
oder ??
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Ja, genau so meine ich das.Zitat von izaseba
Es ist so, ich habe an ADC0 und ADC1 je ein Poti. Drehe ich das an ADC1 auf 0 dann bleibt das natürlich auch so. stelle ich dort einen Wert ein und ändere dann den wert an ADC0 steigt bzw. sinkt der Wert an ADC1 um ein gewisses Maß mit und umgekehrt.
Bei denen die in der Luft hängen kann ich es mir ja noch erklären, aber wenn ein Signal anliegt sollte es sich nicht mehr beeinflussen, oder sehe ich das falsch?
mfG Henry
Hmmm,
das siehst Du richtig.
Normal ist das nicht, also wie gesagt, hatte solche Problemme noch nie.
Vielleicht liegt ein Problem in der Schaltung ?
Mess mal die Spannung am Schleifer, AREF mit dem Multimeter nach, wenn Du an den Potis drehst, vielleicht ist da irgendwo der Hund begraben..
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
So, habe es gerade mal gemessen.
Die Spannung am Schleifer des zweiten Poti ändert sich tatsächlich mit.
Die Versorgungsspannung ist allerdings stabiel.
dadurch kann ich mir das wieder nicht erklären. Die Leitungen liegen ca. 2,54mm auseinander, das sollre meiner Meinung nach reichen, denn es fließen ja keine hohen Ströme wo man dann von Induktion sprechen könnte. Äußerst seltsam.
Hat jemand ne Idee wie ich das unterbinden könnte?
mfG Henry
Also mit Pull Down Widerständen geht es wunderbar und stört sich nicht mehr gegenseitig. Also doch ganz einfach
mfG Henry
Lesezeichen