Gast
#2311815
Schönen guten Tag,
ich habe mir mal einen Code in C geschrieben, der auf einer 7
Segmentanzeige die Zahlen von 0 bis 9 hoch zählt. Das klappt auch alles
wie es soll, aber kann man den Code irgendwie noch vereinfahcen?
z.B. die delays zusammen fassen oder so?
Hier der Code:
/* Name: main.c
* Projekt: Display
*/
#include <avr/io.h>
#include <util/delay.h>
int main()
{
/*
PB0 10 ---
PB1 2 | | PB5 9
PB2 3 ---
PB3 4 | | PB6 8
PB4 5 --- . PB7 7
1 & 6 = GND
0 = PB0,PB1, PB3, PB4, PB5, PB6 = HEX 0x7b
1 = PB5, PB6 = HEX 0x60
2 = PB0, PB2, PB3, PB4, PB5 = HEX 0x3d
3 = PB0, PB2, PB4, PB5, PB6 = HEX 0x75
4 = PB1, PB2, PB5, PB6 = HEX 0x66
5 = PB0, PB1, PB2, PB4, PB6 = HEX 0x57
6 = PB0, PB1, PB2, PB3, PB4, PB6 = HEX 0x5f
7 = PB0, PB5, PB6 = HEX 0x61
8 = PB0, PB1, PB2, PB3, PB4, PB5, PB6 = HEX 0x7f
9 = PB0, PB1, PB2, PB4, PB5, PB6 = HEX 0x77
*/
DDRB=0xff;
PORTB=0x00;
while(1)
{
PORTB=0x7b;
_delay_ms(1000);
PORTB=0x60;
_delay_ms(1000);
PORTB=0x3d;
_delay_ms(1000);
PORTB=0x75;
_delay_ms(1000);
PORTB=0x66;
_delay_ms(1000);
PORTB=0x57;
_delay_ms(1000);
PORTB=0x5f;
_delay_ms(1000);
PORTB=0x61;
_delay_ms(1000);
PORTB=0x7f;
_delay_ms(1000);
PORTB=0x77;
_delay_ms(1000);
PORTB=0x00;
_delay_ms(5000);
}
return 1;
}
Vielen dank für eure Hilfe!