// Datei main.c /* code013.c ATmega88 @ 8MHz */ #include <avr/io.h> #include "main.h" // Bindet die Headerdatei main.h ein #include "sub.h" // Bindet die Headerdatei sub.h ein #include "mult.h" // Bindet die Headerdatei mult.h ein int main(void) { uint8_ta=4, b=2, ergebnis; ergebnis = addition(a, b); // *1 ergebnis = subtraction(a, b); // *2 ergebnis = multiplication(a, b); // *3 ergebnis = ergebnis + c; // *4 } uint8_t addition(uint8_t a, uint8_t b) { return a+b; } // Datei sub.c uint8_t subtraction (uint8_t a, uint8_t b) { return a-b; } // Datei mult.c uint8_t c = 10; // Die Variable c wurde in mult.h deklariert und an dieser Stelle definiert. Gleichzeitig wird sie mit dem Wert 10 initialisiert uint8_t multiplication (uint8_t a, uint8_t b) { return a*b; } // Datei main.h #ifndef MAIN_H_ #define MAIN_H_ uint8_t addition (uint8_t a, uint8_t b); // Funktionsprototyp #endif /* MAIN_H_ */ // Datei sub.h #ifndef SUB_H_ #define SUB_H_ uint8_t subtraction (uint8_t a, uint8_t b); // Funktionsprototyp #endif /* SUB_H_ */ // Datei mult.h #ifndef MULT_H_ #define MULT_H_ extern uint8_t c; // Durch das Schlüsselwort extern wird die Variable c deklariert uint8_t multiplication (uint8_t a, uint8_t b); // Funktionsprototyp #endif /* MULT_H_ */