Gefunden für bit schieberegister io - Zum Elektronik Forum |
| 1 - AVR - Geschwindigkeit von Operationen und Variablentypen -- AVR - Geschwindigkeit von Operationen und Variablentypen | |||
| |||
| 2 - AVR - I²C-Slave -- AVR - I²C-Slave | |||
| Hallo,
wenn es nicht so wichtig ist, die IO-Zustände zurückzulesen, dann würde ich dir drei Schieberegister (z.B. CD4094) empfehlen. Du kannst den Überlauf des vorherigen Registers an den Dateneingang des nachfolgenden anschließend und dann schlicht und ergreifend deine 24 Bits austakten als wäre es ein großes Register. Soll allerdings jedes Bit unabhängig von den Nachbarbits gesetzt/gelöscht werden können, kommst du nicht darum, drei Bytes im SRAM als Abbild zu reservieren. Dort würden dann die Bitoperationen durchgeführt und anschließend jeweils der ganze Puffer ausgetaktet. Soll es dennoch beim I²C bleiben: Schau ins Datenblatt, dort steht, wie du deinen AVR als Slave einstellen kannst! Hier mal ein Auszug aus einem meiner früheren Programme: Code : | |||
3 - 74HC164 - 8-bit serial-in, parallel-out shift register -- 74HC164 - 8-bit serial-in, parallel-out shift register | |||
Zitat : [...] Worte zu der Funktion dieses μC sagen [...] Nicht alles, was schwar ist und Beine hat ( ) ist gleich ein Mikrokontroller. Dies ist einfach ein Schieberegister, also eine etwas komplexere digitale Grundschaltung.
Da ich, wenn ich µC benutze und viele Ausgänge benötige, auch zu Schiberegistern greife, würde ich mal behaupten, dass das hier ähnlich ist: Das Schieberegister dient dazu, wesentlich mehr Ausgänge zu erhalten, als am µC vorhanden sind. Dort werden die Bits seriell (= hintereinander) hineingeschoben und kommen parallel an den Ausgängen heraus. Das ist im Falle eines 8 Bit Schieberegister aber auch mindestens 8 mal so langsam, wie die direkte Ausgabe der Daten an einem IO-Port, wenn der Takt des Register dem CPU-Takt entspricht. Diese Register kann man auch kaskadieren, sodass das letze Bit, was herausgeschoben wird, in den Dateneingang eines nachfolgenden Registers angeschlossen w... | |||
| 4 - Abfrage von 24 Endschaltern -- Abfrage von 24 Endschaltern | |||
| Das Ganze ist eine Frage des Programmes.
Die Hardware sieht eigentlich sehr einfach aus: Drei Schieberegister mit parallel-load (Parallel-zu-seriell-Wandler) dienen als Eingabe für einen Mikrokontroller. Der benötigt dann für die Dateneingabe drei IO-Pins. Die Endschalter werden an die Schieberegister angeschlossen und liefern TTL-Pegel. Soll eine "Mustererkennung" durchgeführt werden, dann taktet der Mikrokontroller alle 24 Bits aus. Entsprechende gültige Muster liegen als 32-Bit-Zahl im Flash des Mikrokotrollers vor (24-Bit-Zahlen gibts bspw. in C nicht, in Assembler wäre das auch mit 24 Bit möglich). Der Kontroller führt jetzt soviel Bitmuster-Vergleiche durch, wie auch Vergleichsmuster vorliegen. Wird keines gefunden, dann liegt ein Bohrfehler vor, und wir als solcher auf einem Display ausgegeben. Wird ein Muster "erkannt", dann kann man mit einer Art Index mehr Infos aus dem Speicher holen und diese anzeigen lassen. Das Schwierige dabei dürfte wirklich das Display werden, der Rest ist akzeptabel .
Edit: Um alles erweiterbar machen zu können, müsste im schlimmsten Fall nur ein serielles Kabel an den Rechner gestöpselt werd... | |||
| 5 - Atmega162 + SRAM -- Atmega162 + SRAM | |||
Viele viele Leitungen.
Zitat : Wenn der Atmega162 korrekt eingestellt ist, sollte der externe SRAM praktisch an den internen angehängt werden... Für das Programm (übrigens in C geschrieben) sollte es also kein Problem darstellen, auf den externen RAM genauso zuzugreifen wie auf den internen,Würde ich nicht verlangen. Wahrscheinlich hast du mehr Freiheiten hinsichtlich des Prozessors, wenn du z.B. die Daten, deren Inhalt vermutlich uninteressant ist, im externen RAM aufhebst und die Verwaltung derer wie Pointer, Bitmaps etc. vorzugsweise im Speicher des Prozessors machst. Ich habe auf diese Art mal ein 256k*1 DRAM mit insgesamt nur 5 oder 6 Pins an einen PIC16C84 (der hat nur 36 Bytes RAM und 12 IO-Pins) angebunden. Der DRAM diente als FIFO zwischen einem hochauflösenden ADC und einem Drucker, der mit den nach PCL konvertierten Grafikdaten gefüttert wurde. Als zusätzliche Hardware waren nur zwei 8-Bit Sc... |
|
Zum Ersatzteileshop Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation! gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag heute wurden bisher 6 Beiträge verfasst 3 Besucher in den letzten 60 Sekunden alle 20.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |