Ungewöhnliche 2 Digit 7 Segment Anzeige

Gast #4823741
Lesenswert?
• ▲
▼
Hallo, ich habe eine 2 Digit 7 Segment Anzeige und wollte testen, ob 
diese Funktioniert. Dazu habe ich ganz schnell einen Code, geschrieben:
1
#ifndef F_CPU
2
#define F_CPU 16e6
3
#endif
4

5
#include <util/delay.h>
6
#include <avr/io.h>
7

8
#define ZERO  0b00111111    // ; 0: a, b, c, d, e, f
9
#define ONE   0b00000110    // ; 1: b, c
10
#define TWO   0b01011011    // ; 2: a, b, d, e, g
11
#define THREE 0b01001111    // ; 3: a, b, c, d, g
12
#define FOUR  0b01100110    // ; 4: b, c, f, g
13
#define FIVE  0b01101101    // ; 5: a, c, d, f, g
14
#define SIX   0b01111101    // ; 6: a, c, d, e, f, g
15
#define SEVEN 0b00000111    // ; 7: a, b, c
16
#define EIGHT 0b01111111    // ; 8: a, b, c, d, e, f, g
17
#define NINE  0b01101111    // ; 9: a, b, c, d, f, g
18
#define ZIFFER1 PB1
19
#define ZIFFER2 PB0
20

21
int main(){
22

23
  char data[10] = {ZERO,ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE};
24
   
25
  //PORTD als Ausgang konfigurieren
26
  DDRD  = 0xFF;
27

28
  //ZIFFERN Pins als Ausgang
29
  DDRB = (1<<ZIFFER1) + (1<<ZIFFER2);
30
  
31
    while(1){
32
    
33
    //Es soll "61" dargestellt werden
34

35
    PORTD  =  data[6];
36
    PORTB |=  (1<<ZIFFER1);
37

38
    _delay_ms(5);
39

40
    PORTB |=  (0<<ZIFFER1);
41
    PORTD  =  data[1];
42
    PORTB |=  (1<<ZIFFER2);
43

44
    _delay_ms(5);
45

46
    PORTB |= (0<<ZIFFER2);
47
    
48
    }
49
}

Doch mit diesem Code kann ich die Ziffern nichtmehr ausschalten. Wo 
liegt das Problem?

Lg, septex

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren