Du verstehts aber schon, was der Code im einzelnen macht, oder?
1 | int AD_Lesen(unsigned char Kanal)
|
2 | { int dummy;
|
3 | int result;
|
4 | //Raus damit, gehört in ADC_INIT();
|
5 | // ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0); // Frequenzvorteiler
|
6 | // setzen auf 8 (1) und ADC aktivieren (1)
|
7 | // Kanal waehlen "oder ist gleich!", sonst ist ADMUX überschrieben und die INIT sinnlos.
|
8 | ADMUX |= Kanal;
|
9 | //Raus damit, gehört in ADC_INIT();
|
10 | // ADMUX |= (1<<REFS1) | (1<<REFS0); // interne Referenzspannung nutzen
|
11 |
|
12 | // nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest
|
13 | // also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen"
|
14 |
|
15 | /*Also startest Du hier eine Wandlung, wartest auf "fertig" und liest einen Messwert aus. Wo ist denn jetzt der "dummy-Readout"???*/
|
16 |
|
17 | /*Nehmen wir an, das es sich hier um den Dummyreadout handelt, dann musst Du die Wandlung nochmal anschubsen, um dein korrektes Messergebnis als Return zur Verfügung zu stellen.*/
|
18 |
|
19 | //1. Dummyreadout
|
20 | ADCSRA |= (1<<ADSC); // eine ADC-Wandlung
|
21 |
|
22 | while ( ADCSRA & (1<<ADSC) )
|
23 | {
|
24 | // auf Abschluss der Konvertierung warten
|
25 | };
|
26 |
|
27 | dummy = ADCW; // ADCW muss einmal gelesen werden,
|
28 | // sonst wird Ergebnis der nächsten Wandlung
|
29 | // nicht übernommen.
|
30 |
|
31 | //2. "echte" Wandlung
|
32 | ADCSRA |= (1<<ADSC); // eine ADC-Wandlung
|
33 |
|
34 | while ( ADCSRA & (1<<ADSC) )
|
35 | {
|
36 | // auf Abschluss der Konvertierung warten
|
37 | };
|
38 |
|
39 | result = ADCW; // ADC wird erneut gelesen und das Ergebnis
|
40 | // übernommen
|
41 |
|
42 | return result;
|
43 | }
|
ADC Takt ist so ok? Welche Taktfrequenz hat der Controller?
Kannst Du BITTE DEN KOMPLETTEN CODE posten?
Bzw. welches ist denn nun dein kompletter Code? (kurzer Link drauf
genügt)
Was ist/soll "c++" in der UART-Transmitt Ruotine?
sollte eigentlich mit den gegebenen Hinweisen funktionieren, denke ich
mal.
Gruß
AxelR.
Ich habe die Hinweise als Kommentar in die Quelle geschrieben. sieht man
kaum...