www.mikrocontroller.net

Forum: Compiler & IDEs Externes Schiebereister einlesen


Autor: Bernd Bömer (behbeh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte mit einem ATMEGA88 ein externes Schiebereister(CD4014) 
einlesen. Mit den Bits setzen fuer die Leitungen CLK, PS, habe ich kein 
Problem. Aber wie schiebe ich eine Portpin(8 mal wegen 8 Bits) in ein 
Register hinein. Bin neu mit C-Programmierung angefangen, mir fehlt 
einfach die richtige Codezeile..
 register << 8 mal portpin portb,0.
Oder programmiert man das in C  so:?
1. den Port komplett einliesen,
2. speichert im Register
3  den Pin 0 mit "oder" ausmaskieren
4. und mit "oder" in ergebniss register abspeichern..??

Kleiner Tip wäre sehr hilfreich fuer mich

Bernd

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm das SPI-Interface.

Autor: Bernd Bömer (behbeh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke für den Tipp,
also muss ich vom 4094 Q8 an MISO anschliessen, SCK an CLK(4094) und SS 
an PS ?. Wie wird SS denn vom Controller bedient, automatisch oder muss 
es per Software gesetzt werden.?

Danke nochmal..

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach es mit SPI. Dafür ist das hervorragend geeignet.

> den Pin 0 mit "oder" ausmaskieren
Wenn Du nur den Wert eines Pins haben willst, dann wird das mit ODER 
sicher nicht klappen. Dafür musste schon UND nehmen.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SS\ brauchst Du nicht. Der SS\ am Controller ist nur für den Fall, dass 
der Controller als Slave arbeitet.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...Für den PS kannste im Prinzip einen beliebigen Pin vom µC nehmen.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, was wichtig ist für die Funktion des SPI (und ein Grund, den 
SS\-Pin doch als Ausgang für PS zu benutzen): Der SS\-Pin vom 
Controller darf, wenn er als Eingang konfiguriert ist, nicht auf Low 
gezogen werden, da sonst in den Slave-Betrieb umgeschaltet wird. Also 
konfiguriere ihn als Ausgang und hänge das PS vom Schieberegister dran. 
Dann kann nichts schiefgehen.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Upps, ich sehe grad, das 4094 ist ein 
seriell-zu-parallel-Schieberegister. Das geht nur zur Ausgabe von 
Daten, aber nicht zum Einlesen...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch mal "Upps": Hatte mich verlesen. Du hast ja nen 4014

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mir die obigen Postings noch mal durchgelesen und weiß jetzt auch, 
wo ich das 4094 gesehen hatte, nämlich in Deinem zweiten Posting. 
Kleiner Widerspruch. Wie gesagt, mit nem 4094 geht das was Du willst 
nicht.

Autor: Bernd Bömer (behbeh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
vielen Dank für die Tipps.
Also ich muss Daten einlesen aus vielen 4014..
Bis zu 32 Stk in Serie. Diese werden als sogenannter S88 Bus verwendet.
(Märklin Interface 6051). Nachzulesen bei "www.digital-bahn.de".
Mein Ziel ist es, das zwar bei Ebay usw. erhältliche Interface 
nachzubauen, die Steuerung der Weichen klappt schon. Technisch gesehen 
ist es ein Interface, was von der RS232 Befehle bekommt, umsetzt in 
I2C-Bus  Befehle an die Zentraleinheit, und die führt dann die Befehle 
aus.
Werde mal mit dem 4014 und dem SPI Bus mir die Pegel und Pulszeiten 
ansehen, was da machbar ist...
Vielen Dank nochmal für die Antworten..
Vielleicht kann ich mich mal hier mit meine Erfahrungen wieder nützlich 
machen.
Bernd

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.