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 ?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.