Frage zu einer Klammer

OP #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
OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.