Shiftin mit shiftout kompinieren

Hallo zusammen,
habe mir im Playground die Beispiele für shiftIN und ShiftOUT angeschaut und ausprobiert. ShiftOUT kein Problem. ShiftIN "Hello World" meldet einen Fehler, der besagt, dass beim Aufruf von Shiftin(dataPin, clockPin) ein Parameter fehlen würde. Ich habe dies auch in einem älteren (2008) Post gelesen. Habe dann einfach "MSBFIRST" eingefügt. Ist das wirklich so, oder verstehe ich was falsch?
Dann möchte ich die Schieberegister IN und OUT kombinieren. Dazu habe ich aber einen 74HC165 genommen. Den hatte ich schon.
Frage 1: Ist es richtig, dass ich die gleichen 3 Pine (clock, latch, data) für ShiftIN und ShiftOUT verwenden kann?
Also clock und latch parallel und data in Reihe?
Frage 2: kann ich am Mega jeden Digtalpin nehmen, oder muss ich genau die aus den Beispielen nehmen?
Gruß aus Leverkusen
Allaf
javascript:void(0);

ich als norddeutscher finde den karneval beschissen.... :slight_smile:

gruss

Hallo kucky

Es gibt verschiedene Schieberegister.
Sie werden durch die arte der Ein-Ausgänge bezeichnet.
Seriel in parallel out (SIPO)
und
Parallel in seriel out (PISO)

Mit den SIPO kannst Du Ausgänge schaffen.
Mit dem PISO Eingänge.
Du brauchst dazu 2 verschiedene Typen Schieberegister. Der 74HC165 ist ein PISO.

Alternative sind I2C Port Expander. Da kannst Du beliebig jedes Pin als Eingang oder Ausgang definieren. Sind aber einiges teurer als Schieberegister.

@funkheld
Morgen werde ich einen Faschingsumzug im Nachbardorf besuchen. Werde sicher schwarze Farbe im Gesicht abbekommen. Den faulen Fischen und nassen Tücher versuche ich zu entgehen.
http://www.egetmann.com/02%20Fotos/00%20Homepage/Plakat%202011.pdf
http://www.egetmann.com/03%20Seiten/03Umzug.1.htm
Grüße Uwe

Hallo Uwefed,
ich habe mich wohl unklar ausgedrückt. Ich benutze den 74HC595 um zusätzliche Ausgänge am Arduino zu schaffen. Mit dem 74HC165 möchte ich nun Eingänge dazubekommen. In den Beispielen sind "ShiftIN" und "ShiftOUT" werden am Arduino die Pins 11, 12, 8 (OUT) bzw. 9, 7, 8 (IN) benutzt.
Muß das so sein, oder kann ich jeden Digitalen Pin benutzen?
Kann ich ShiftIN und ShiftOUT miteinander kaskadieren bzw. verbinden?
Kann ich dann clock und latch parallel schalten und die data-Leitung "durchschleifen"
Gruß
Willi

Hallo kucky

Nein, Du kannst den 595 und den 165 nicht miteinander kombinieren, sondern mußt 2 getrennte Stränge haben.
Du kannst mehrere 595 kaskadieren (hintereinenderschalten). Gleiches gilt für mehrere 165.

Die Pins kannst Du frei auswählen ( bis auf die üblichen Ausnahmen 0,1 ecc.)

http://www.arduino.cc/en/Tutorial/ShiftIn und http://www.arduino.cc/en/Tutorial/ShiftOut
bzw http://arduino.cc/en/Reference/ShiftOut und http://arduino.cc/en/Reference/ShiftIn hast Du sicher schon gelesen.
Grüeß Uwe

Hallo Uwefed,
danke für die Info. Die Artikel habe ich natürlich gelesen. Ich bin aber noch nicht so fit im verstehen. Habe auch lange gesucht, um die Anschlüsse des *165 mit dem des CD4021 zu vergleichen. Dann bin ich über diese Codezeile gestolpert:
"shiftIn(dataPin, clockPin);" Hier fehlt doch ein Parameter !! müsste doch "MSBFIRST" sein.
Und was heißt bitte "( bis auf die üblichen Ausnahmen 0,1 ecc.) "
Ich hoffe, Du bist heil aus dem Faschingszug heraus gekommen? Ich habe Freunde in Wiesental, die erzählen auch immer von so seltsamen Bräuchen.
Gruß Willi

hallo kucky

"( bis auf die üblichen Ausnahmen 0,1 ecc.) "

Ich meinte PIN 0 und PIN 1 die für die serielle Schnittstelle verwendet werden und andere Spezialfunktionen die einige PINs haben und darum für andere Zwecke blockiert sind wenn Du diese Funktionen verwendest: zb I2C, PWM, Interrups ecc.

"shiftIn(dataPin, clockPin);" Hier fehlt doch ein Parameter !! müsste doch "MSBFIRST" sein.

Einige Parameter sind optional, wenn diese nicht angegeben wirden, wird der Standartparamenter genommen.

Faschingsumzug: Ja alles wie erwartet. Gleich am Angang mal schwarz im Gesicht geworden worden und dann Ruhe gehab, außer einige schlaue Bemerungen ich sei rußig. War auch einer da, der Sepp Maier glich, natürlich mit schwarz verzierten Gesicht. Werde noch lange am Sichten der Fotos sein. Die ofizielle Seite hatte ich ja schon aufgezeigt. Da kannst Du dir ein Bild davon machen wie's zugeht.

Grüße Uwe

Hallo Uwe,
vielen Dank. Hast mir sehr geholfen. Werde mich nun wieder zurückziehen und alles ausprobieren.
Schöne Woche noch.
Willi

Habe hier was gefunden, was mir auch sehr geholfen hat die Sache besser zu verstehen.
Beginner Concepts: 595 Shift Register Simulator | Hackaday.

Wenn aber alles so einfach wäre. Ich wollte nun mein "altes" Duemilanove Board nehmen, und damit weiter versuchen. Mein Megaboard ist in einem Projekt eingebunden, und wird über Eclipse und AVRISP MKII einwandfrei programmiert. Nun wollte ich einfach das Duemilanove genauso für mein Schieberegister benutzen. Dazu habe ich selbstverständlich die Parameter neu gesetzt, und mir eine ArduninoCore2009 als static Library gemacht Wegen der anderen PIN-Belegung dachte ich. Erfolg: Fehlermeldung „….not in sync…“ bzw. „ST500…“ Bin im Büro, und habe die Meldungen leider nicht notiert.
Nächster Versuch. Über die IDE des Arduino versucht. Fast die gleichen Meldungen.
Letzter Versuch: Ein anderes Laptop mit frischer IDE. Kein Erfolg.
Ich habe im Playground gesucht, und gegoogelt. Ich hatte hier mal eine Stelle gefunden, wo beschrieben war, wie ich mit einem Arduino einen Arduino flaschen kann. Vielleicht steht ja da was drin. Finde ich nicht mehr.
Bin für jeden Hinweis dankbar.
Gruß Willi

habe hier mal die Fehlermeldung:
Binary sketch size: 1010 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51