Forum: Mikrocontroller und Digitale Elektronik Schieberegister (HEF4094B) Programmieren


von Vithu (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich hoffe ihr könnt mir weiter helfen.
Bin grad dabei Ein Schieberegister zu programmieren.
Schieberegister --> HEF4094B
Microkontroller: Atmega32u4
Programm: Atmelstudio 7
Programmsprache: C

#include <avr/io.h>
int main(void)
{

  DDRB |= (1<<2) | (1<<3) | (1<<4) | (1<<5);
  unsigned char array [8] = {0,0,0,0,0,0,0,1};
  unsigned char array2 [8] = {1,1,1,1,1,1,1,1};
  unsigned char i;

     while (1)
     {
  PORTB = 0x04;     // damit nur mein OE aktiv ist
  for(i=0; i<8;i++)
  {
    PORTB = 0x04;
    if(array [i] == array2[i])
    {
       PORTB |=(1<<4);     // Data signal aktiv
    }
    else
          {
        PORTB &= ~(1<<4);   // Data signal low

    }
  PORTB |= (1<<5);   //Clock aktiv
  PORTB |=(1<<3);    // STR aktiv
        }

    }
}


Habe aif dem pin von schieberegister 2 LEDs drauf gelötet. Und möchte 
jetzt nur das der eine LED leuchtet. Bei mir leuchten die 2 LEDs aber. 
Stimmt die Konfiguration von dem Schieberegister ?

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hi @Vithu,
wenn Du ein Lauflicht-Schieberegister mit dem µP ansteuern möchtest, 
könnte ich dir ein ASM Programm liefern.
Clock, Strobe und Data müssen bedient werden.
Die Portierung verlangt die Memory Mapped Befehle beim ATMEGA 
Timersetup.

ciao
gustav

: Bearbeitet durch User
von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

vllt. hilft dir das hier weiter!

Es ist zwar nicht explizit für einen ATmega32u4 (und mit diesem konnte 
ich das nicht testen weil ich keinen zur Verfügung habe), sollte aber 
dennoch mit diesem funktionieren, da außer Bitbanging keine Hardware des 
Controllers genutzt wird.

Getestet habe ich das mit:

- ATtiny13 \ 85 \ 44
- ATmega8 \ 328 \ 2560

sowohl mit HEF4094 als auch mit SN74HC595 Schieberegistern.

Das einzig zu beachtende ist die Zuordnung der Pins des Schieberegisters 
zum Mikrocontroller. Anschluss OE ist auf +Vcc zu legen (und somit sind 
die
Ausgaenge immer aktiv).
1
                                                 HEF4094
2
                                             Anschlusspins IC
3
4
                                              +------------+
5
                                              |            |
6
                                          str | 1   H   16 | +Vcc
7
                                          dat | 2   E   15 | oe
8
                                          clk | 3   F   14 | out4
9
                                         out0 | 4       13 | out5
10
                                         out1 | 5   4   12 | out6
11
                                         out2 | 6   0   11 | out7
12
                                         out3 | 7   9   10 | out_seriell'
13
                                          gnd | 8   4    9 | out_seriell
14
                                              |            |
15
                                              +------------+
16
17
18
               Anschlussbelegung
19
20
   ATtiny44            HEF4094
21
   -------------------------------------
22
                       16 Vcc
23
                       15 oe = Vcc
24
   11 (PA2)    ...      2 (seriell data)
25
   10 (PA3)    ...      1 (strobe)
26
   12 (PA1)    ...      3 (clock)
27
                       10 (seriell out')
28
                        8 GND
29
30
*/
31
32
// Anbindung Schieberegister an den Mikrocontroller, bei
33
// Bedarf abaendern
34
35
// Dataanschluss nach PA2
36
#define sr_datport     A
37
#define sr_datbitnr    2
38
39
// Clockanschluss nach PA1
40
#define sr_clkport     A
41
#define sr_clkbitnr    1
42
43
// Strobeanschluss nach PA3
44
#define sr_strport     A
45
#define sr_strbitnr    3

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.