von
Sebastion W. (Gast)
10.12.2016 18:07
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
Kannst Du 5ms Wechsel mit dem Auge detektieren?
von
Wolfgang (Gast)
10.12.2016 18:10
Wie willst du mit "|=" irgendetwas ausschalten können.
Kann natürlich auch an deiner Schaltung liegen ;-)
Sebastion W. schrieb:
> PORTB |= (0<<ZIFFER1);
Diese Zeile tut - nichts (VerODERn mit null macht nun mal nichts). Wenn
du die Leitung ausschalten möchtest, ist ein1 PORTB &= ~ ( 1 << ZIFFER1 );
zielführender.
von
Sebastion W. (Gast)
10.12.2016 18:40
omg bin ich dumm. Haha. naja danke für den Hinweis :D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.