Übergeben von Werten aus einer Funktion

Gast #5620766
Lesenswert?

Hallo miteinander. Ich habe folgendes Problem Ich habe eine Funktion wo 
einen Wert übergibt in einer funktion. Diese übergibt den Wert mit 
"data". Dafür hat es pointer wo den wert übergeben. Jedoch erhalte ich 
den Wert im Main nicht. Kann mir jemand helfen. Ich habe das gefühl ich 
stelle die Variabel data falsch dar. Die funktion Read_information 
funtioniert und bringt mir auch einen Wert.


Code im Haeder
1
uint8_t Test(uint8_t device, uint8_t address, uint8_t *data);

Code im C file von dem Haeder
1
uint8_t Test(uint8_t device, uint8_t address, uint8_t *data)
2
{
3
  //Wert auslesen
4
  *data=Read_information(1);
5
}

Code im Main wo die Variabel "Red" komischerweise 0 beträgt
1
Test(0x70,0x50,Red);
#5620771
Lesenswert?

Hallo Tom,

Tom schrieb:
> Code im C file von dem Haederu
>int8_t Test(uint8_t device, uint8_t address, uint8_t *data)
> {
>   //Wert auslesen
>   *data=Read_information(1);
> }

die Funktion hat den Rückgabetyp uint8_t du gibst aber nichts zurück...
das is das erste.

Tom schrieb:
> Code im Main wo die Variabel "Red" komischerweise 0 beträgt
>Test(0x70,0x50,Red);

Nun noch die Adresse der Variable übergeben und der Zeiger schreibt dir 
dann auch den WErt an die Adresse.


1
Test(0x70,0x50,&Red);
Gast #5620774
Lesenswert?

Der Compiler gibt keine Warnings aus ?

Ich rate mal
vielleicht steht bei Dir irgendwo

uint8_t  Red;

Dann müsstest Du Test(0x70,0x50,&Red);   aufrufen, damit der Funktion 
auch einen Pointer auf "Red" übergeben wird.

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