ich versuche mich gerade an Zeigern in Funktionen und habe mich an den Leitfaden von der Seite https://de.wikibooks.org/wiki/C-Programmierung:_Zeiger gehalten. Nach meiner Einschätzung habe ich es genauso gemacht wie in dem Leitfaden weiß aber nicht mehr weiter.
Daher bitte ich Euch um Hilfe es zu verstehen.
Ich habe folgenden Code:
Code: Alles auswählen
//*******************************************************************
// Globale Variable für den LED Test
static float refLed1 =0;
static float refLed2 =0;
static float refLed3 =0;
static float refLed4 =0;
float *ptrRefLed1= &refLed1;
float *ptrRefLed2= &refLed2;
float *ptrRefLed3= &refLed3;
float *ptrRefLed4= &refLed4;
//*******************************************************************
// Prototypen:
void ledtest(uint32_t anz, uint32_t statusLed1, uint32_t statusLed2, uint32_t statusLed3, uint32_t statusLed4, float *ptrRefLed1, float *ptrRefLed2, float *ptrRefLed3, float *ptrRefLed4){
uint32_t ledTask=1;
printf(anz); // Anzeige über String ob Anzeige gleich den LEDs am Board
while (ledTask)
{
if(DBNCTASTER1){ // Taster1 gedrückt?
printf("Test erfolgreich.\n"); // Anzeige "test erfolgreich"
if (statusLed1==1) {*ptrRefLed1++;};
if (statusLed2==1) {*ptrRefLed2++;};
if (statusLed3==1) {*ptrRefLed3++;};
if (statusLed4==1) {*ptrRefLed4++;};
LED1AUS; // LED 1 aus
LED2AUS; // LED 2 aus
LED3AUS; // LED 3 aus
LED4AUS; // LED 4 aus
ledTask = 0;
}
else if(DBNCTASTER2){ // Taster2
printf("Test nicht bestanden.\n");
LED1AUS; // LED 1 aus
LED2AUS; // LED 2 aus
LED3AUS; // LED 3 aus
LED4AUS; // LED 4 aus
ledTask = 0;
}
}
}
int main(){
printf(" *************** LED Test 1 ***************.\n\n");
statusLed1=1; // übergabe des led status ob an oder aus
statusLed2=0;
statusLed3=0;
statusLed4=0;
LED1AN;
ledtest(ANZM1, statusLed1,statusLed2,statusLed3,statusLed4, &ptrRefLed1, &ptrRefLed2, &ptrRefLed3, &ptrRefLed4);
return 0;
}
Mein Problem scheint der klassiker in der Pointerwelt zu sein, dass der inhalt von den Pointern nicht übernommen wird bzw vorher gelöscht wird.
Ich verzweifel hier und würde es gerne verstehen.
Vielen lieben Dank schon mal für eure Antworten.
Lieben Gruß
Logan