74 hc 595 - C - reagiert nicht

OP #1761700
Lesenswert?

Hallo,

ich ärgere mich jetzt schon ein Weilchen mit der Porterweiterung herum.

Findet jemand den Fehler?

Ich hab mich schon durch etliche Beiträge hier, sowie das Datenblatt 
gelesen und bin nicht wirklich weiter...

Den Code von hier: 
http://www.mikrocontroller.net/articles/Porterweiterungen habe ich noch 
nicht ausprobiert, wollte das ganze etwas "kompakter" halten.

Danke!
1
int main() {
2
  uint8_t si;   // an:  PB 00  1
3
  int g;        //      PB 01  2
4
  int sck;     //       PB 02  4  
5
  int sclr;    //       PB 03  8
6
  int rck;     //       PB 04  16
7

8

9
  int i;      //laufvariable  
10

11

12
  DDRB = 0x00; 
13
  PORTB = 0x00;
14
  
15
  
16
  _delay_ms(1000);
17

18
  si = 0xf0;      //gewünschte ausgabe
19
  
20
  
21
  g = 1;                  //output disable
22
  PORTB |= (0x02 & g);  
23
  PORTB |= (0x08 & 0);    //shift register cleared
24
  PORTB |= (0x08 & 1);    //sclr - aufnahmebereit
25

26
  for(i=0; i<8; i++){
27
    PORTB |= (0x01 & (si >> (7 - i))); 
28
    
29
    sck = 1;
30
    PORTB |= (0x04 & sck); 
31

32
    _delay_us(5); 
33
    
34
    sck = 0;  
35
    PORTB |= (0x04 & sck); 
36

37

38
    }
39
 
40
  rck = 1;
41

42
  _delay_us(5);
43

44
  rck = 0; 
45
  PORTB |= (0x10 & rck); 
46

47
  g = 0; 
48
  PORTB |= (0x02 & g);
49

50
  _delay_ms(500); 
51

52
  while(1){
53
  ;
54

55

56
  }  
57

58
}
Gast #1761711
Lesenswert?

> g = 1;                  //output disable
> PORTB |= (0x02 & g);
> PORTB |= (0x08 & 0);    //shift register cleared
> PORTB |= (0x08 & 1);    //sclr - aufnahmebereit

..ähm.. ich möchte - ohne Dir zu nahe treten zu wollen - dringend 
empfehlen, ein C-Buch zu lesen. Oder den Code anzusehen, den Du oben 
schon verlinkt hast. So wird das nix..

HTH

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