Hallo Leute,

ich bin aktuell dabei mich wieder in C ein rein zu fitzen. Ist leider schon ne Weile her.

Na jedenfalls habe ich ein kleines Programm geschrieben, was über eine Headerdatei einen Wert in eine Funktion gibt und dort multipliziert und wieder raus gibt. Da sind scheinbar noch kleinere Problemchen drin.

Code:
#include <avr/io.h> 
#include <stdio.h> 
#include <inttypes.h> 

#ifndef F_CPU
#define F_CPU 80000000UL     /* Quarz mit 8 Mhz  */
#endif

#include <util/delay.h>      /* definiert _delay_ms() ab avr-libc Version 1.2.0 */


#include "main_header.h" // Einfügen der Header-DAtei main_header.h



int main(void) //Hauptprogramm
{
    int8_t Var_Out, Var_In = 0;

    Var_In = 14;
    
    DDRD = 0b11111111;            // PORTD als Ausgang setzen

    PORTD = zaehler(Var_Out); //Aufruf Funktion
}

int8_t zaehler(int8_t Var_In) //Definition der Funktion "zaehler"
{    
    int8_t Var_Out;

    Var_Out = Var_In * 2; //hochzählen    

    return (Var_Out);
}
Header:
/*

Header Testdatei

*/


int8_t zaehler(int8_t Var_In); //Deklaration der Funktion "zaehler"
ABER: Wenn ich auf die Variable klicke und sage "add watch" dann habe ich die in der List drin stehen. Es steht aber bei "Value" immer "Location not valid". Muss ich da irgendwas einstellen oder aktivieren? Wie kann ich das nutzen?


Und dann, sozusagen als Bonusfrage, noch eine kleine Frage zu meine Programm. Ich habe eine Variable die an die Funktion übergeben wird "Var_In". Dann habe ich eine Variable "Var_Out" die wieder zurück an die main geht, oder? Weil irgendwie funzt das so nicht. Leider. Vielleicht habt ihr ja ein Tip für mich.

Danke
Arno