Forum: Mikrocontroller und Digitale Elektronik Verständnis Problem Arduino Uno


von MvK (Gast)


Lesenswert?

Hallo zusammen,
bin noch recht neu was das programmieren angeht und hab ne Frage zu 
folgenden Quelltext den ich gefunden habe er dient zur Übertragung von 
Analogwerten an einem zweiten Arduino:
1
#include <VirtualWire.h>
2
3
#define NUMBEROFANALOGPINS  2 
4
5
int _databytes = NUMBEROFANALOGPINS*sizeof(int); 
6
int _data[NUMBEROFANALOGPINS];    
7
8
9
void setup()
10
{
11
  vw_setup(2000);  
12
}
13
14
void loop()
15
{
16
  
17
  for(int i=0;i< NUMBEROFANALOGPINS;i++) 
18
  {
19
    _data[i] = analogRead(i);      
20
  }
21
22
////Bis hier hin versteh ich alles nur was passiert jetzt?
23
24
  send((byte*)_data,_databytes);   // ist byte* eine art adresse wenn ja                          ////                                    welche?
25
  delay(10);                      
26
}
27
28
void send(byte *_data, int _nbrOfBytes)   
29
{
30
  vw_send(_data,_nbrOfBytes);
31
  vw_wait_tx();
32
}

Könnt ihr mir da irgendwie weiterhelfen?

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

MvK schrieb:

> nur was passiert jetzt?
>
>   send((byte*)_data,_databytes);   // ist byte* eine art adresse wenn ja
> ////                                    welche?

Nein, Das ist eine Cast-Operation.

Die Adresse des Arrays _data wird auf den Datentyp byte* umgecastet, 
damit der Datentyp identisch zu dem ist, was die Funktion haben will.


Jedes grindige C-Buch hat eine Menge darüber zu erzählen. Du solltest 
den Ankauf und das Durcharbeiten eines derartigen Buches in Erwägung 
ziehen (muss auch nicht grindig sein). Es lohnt sich.

von Conny G. (conny_g)


Lesenswert?

Und byte * ist ein sog. Zeiger / Pointer, ein wichtiger Typ in C.
Google mal danach und lies den einen oder anderen Artikel dazu.

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
Noch kein Account? Hier anmelden.