Frage zu einer Klammer

#3267701
Lesenswert?

Narbend,

Ich bearbeite das A/D Tutoriell und verstehe eine bestimmte Zeile nicht 
richtig oder sehe den Sinn darin nicht richtig.

Bei dem Code Stück
1
/* ADC Einzelmessung */
2
uint16_t ADC_Read( uint8_t channel )
3
{
4
  // Kanal waehlen, ohne andere Bits zu beeinflußen
5
  ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
6
  ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
7
  while (ADCSRA & (1<<ADSC) ) {   // auf Abschluss der Konvertierung warten
8
  }
9
  return ADCW;                    // ADC auslesen und zurückgeben
10
}

Gibt es diese Zeile
1
uint16_t ADC_Read( uint8_t channel )

Heißt es, das die Variable ADC_Read eine Größe von unit16_t hat und 
in ihr der Wert der Variable channel mit einer Größe von unit8_t 
steckt ?

Oder versteh ich das ganze falsch?

Mfg Bqube
#3267729
Lesenswert?

Ahhhh :) das macht es nun auch ein wenig logischer für mich also wenn 
ich mir den ganzen Code nun anschaue (Verkürzt)

1
/* ADC initialisieren */
2
void ADC_Init(void) {
3
 
4
  uint16_t result;
5
 
6
  // die Versorgungsspannung AVcc als Refernz wählen:
7
  ADMUX = (1<<REFS0);    
8
  // oder interne Referenzspannung als Referenz für den ADC wählen:
9
  // ADMUX = (1<<REFS1) | (1<<REFS0);
10
....
11
....
12
...
13
..
14
 
15
 
16
/* ADC Einzelmessung */
17
uint16_t ADC_Read( uint8_t channel )
18
{
19
  // Kanal waehlen, ohne andere Bits zu beeinflußen
20
  ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
21
  ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
22
  while (ADCSRA & (1<<ADSC) ) {   // auf Abschluss der Konvertierung warten
23
  }
24
  return ADCW;                    // ADC auslesen und zurückgeben
25
}
26

27
....
28
....
29
.
30
.....
31
.

Ist der Untere Code eine Funktion in der Funktion void ADC_Init(void)

Mfg Bqube

Danke Digi Spark
Moderator #3267751
Lesenswert?

Pierre Gnauck schrieb:
> Ich bearbeite das A/D Tutoriell und verstehe eine bestimmte Zeile nicht
> richtig oder sehe den Sinn darin nicht richtig.

Am Anfang des AVR-GCC-Tutorials (über das du vermutlich zum Artikel 
"Analoge Ein- und Ausgabe" gelangt bist)steht geschrieben:

"Vorausgesetzt werden Grundkenntnisse der Programmiersprache C."

Diese fehlen dir komplett.

Kauf die ein Lehrbuch über C (z. B. das von Kernighan & Ritchie) oder 
arbeite ein C-Tutorial im Web durch. Hier findest du es ein paar Links 
dazu:

https://www.mikrocontroller.net/articles/C

C zu lernen ist nicht allzu schwer, aber ganz ohne Literatur ist es 
definitiv nicht zu schaffen.
#3267774
Lesenswert?

Schnapp dir einen PC, installier dir eine freie ENtwicklungsumgebung für 
C und arbeite das Buch bis zum ersten Drittel durch. Widersteh der 
Versuchung die beigelegten Beispiele einfach nur laufen zu lassen und zu 
sagen "na toll", sondern studier sie und dann programmier sie selber. 
Wandle die Beispiele ab, wenn im Buch Übungsaufgaben sind, dann mach 
die.

Im Endeffekt sind das ein paar Wochen lernen, die sich ganz schnell 
selbst bezahlt machen.

Und dann bist du soweit, auf einen µC zu wechseln und dich mit den 
Besonderheiten der µC Programmierung vertraut zu machen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren