Hallo,

Versuche einmal die Zeile "int8_t Var_Out, Var_In = 0;" vor main geben. Also zwischen den include Anweisungen und main.
Das würde aber bedeutet das ich die Variablen dann global definiere oder? Habe mal gelernt das man das nicht machen soll. Aber habs mal ausprobiert, es geht.

Habe jetzt auch mal um die Zeile eine kleine dauer While Schleife gebaut. Geht immer noch nicht. Ich dachte aber das jeder Aufruf der Funktion die einmal ausführt.

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



int8_t Var_Out, Var_In = 0;


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);
}

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

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

    while(1)
    {
        PORTD = zaehler(Var_Out); //Aufruf Funktion
    }

}
Var_In in der Funktion hat abber immer noch kein Wert. Also geht das ganze Programm immer noch nicht. Mist. Kann mir da jemand bei helfen.

Danke
Arno