#include <avr/io.h>
#include <util/delay.h>
// Definition der Pinbelegung
const byte SEGMENT_A = 2;
const byte SEGMENT_B = 3;
const byte SEGMENT_C = 4;
const byte SEGMENT_D = 5;
const byte SEGMENT_E = 6;
const byte SEGMENT_F = 7;
const byte SEGMENT_G = 8;
int e = 0;
int numberToDisplay = 0;
int displayNumber = 0;
// Definition der Segmentmuster für die Ziffern 0-9
const byte digitPatterns[10] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};
void setup() {
DDRD |= (1 << 0);
DDRD |= (1 << 1);
DDRD |= (1 << 2);
DDRD |= (1 << 3);
DDRD |= (1 << 4);
DDRD |= (1 << 5);
DDRD |= (1 << 6);
DDRD |= (1 << 7);
DDRB &=~ (1 << 2);
pinMode(SEGMENT_A, OUTPUT);
pinMode(SEGMENT_B, OUTPUT);
pinMode(SEGMENT_C, OUTPUT);
pinMode(SEGMENT_D, OUTPUT);
pinMode(SEGMENT_E, OUTPUT);
pinMode(SEGMENT_F, OUTPUT);
pinMode(SEGMENT_G, OUTPUT);
}
void loop() {
void displayNumber(int number) {
// Setze die Pins entsprechend des Segmentmusters für die Ziffer
digitalWrite(SEGMENT_A, bitRead(digitPatterns[number], 0));
digitalWrite(SEGMENT_B, bitRead(digitPatterns[number], 1));
digitalWrite(SEGMENT_C, bitRead(digitPatterns[number], 2));
digitalWrite(SEGMENT_D, bitRead(digitPatterns[number], 3));
digitalWrite(SEGMENT_E, bitRead(digitPatterns[number], 4));
digitalWrite(SEGMENT_F, bitRead(digitPatterns[number], 5));
digitalWrite(SEGMENT_G, bitRead(digitPatterns[number], 6));
}
// Anzeige der Ziffern 0-9
for (numberToDisplay = 0; numberToDisplay < 10; numberToDisplay++) {
displayNumber(numberToDisplay);
delay(1000); // Eine Sekunde anzeigen
}
}
}