Forum: Mikrocontroller und Digitale Elektronik Decimale zahl als binär mit SN74HC anzeigen


von 8bit (Gast)


Lesenswert?

Hallo, ich benutzte SN74HC595 mit 8 LEDS

Mein MCU bekommt eine Zahl in dezimale Darstellung, und soll diese in 
binäre Kodierung  auf den LED anzeigen.
Hier ist mein code:
Bei mir leuchten alle 8 LED's
Kann mir bitte jemand helfen.
(LED und 8 bit register funktionieren)
1
       GPIO_PinOutSet(4,10);//N_OE
2
       ledctrl(val);
3
     GPIO_PinOutClear(4,10);//OE
4
void ledctrl(int test){
5
   GPIO_PinModeSet(0,0,gpioModePushPull,0);//SER
6
   GPIO_PinModeSet(4,10,gpioModePushPull,1);//N_OE
7
   GPIO_PinModeSet(5,5,gpioModePushPull,0);//RCLK
8
   GPIO_PinModeSet(5,3,gpioModePushPull,0);//SRCLK
9
   GPIO_PinModeSet(5,4,gpioModePushPull,1);//N_SRCLR
10
11
      for (int i=0;i<8;i++){// send 8 bit
12
       GPIO_PinOutClear(5,5);//reset latch
13
       GPIO_PinOutClear(5,3); //SRCLK_low
14
       mask=1<<i;
15
          if((test&mask)!=0){
16
              GPIO_PinOutSet(0,0);// SER HIGH
17
          }else{
18
             GPIO_PinOutSet(0,0);// SER LOW
19
        }
20
        GPIO_PinOutSet(5,3);//Clock rising edge
21
       }
22
      GPIO_PinOutSet(5,5);//Latch data
23
 
24
25
26
27
}

von tt (Gast)


Lesenswert?

Dein Quelltext dürfte durchaus etwas übersichtlicher formattiert werden, 
das erleichtert die Fehlersuche....

Trotzdem, ich behaupte dass der Fehler bei diesen Zeilen liegt:

8bit schrieb:
>           if((test&mask)!=0){
>               GPIO_PinOutSet(0,0);// SER HIGH
>           }else{
>              GPIO_PinOutSet(0,0);// SER LOW
>         }

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.