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
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..
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.
SS\ brauchst Du nicht. Der SS\ am Controller ist nur für den Fall, dass der Controller als Slave arbeitet.
...Für den PS kannste im Prinzip einen beliebigen Pin vom µC nehmen.
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.
Upps, ich sehe grad, das 4094 ist ein seriell-zu-parallel-Schieberegister. Das geht nur zur Ausgabe von Daten, aber nicht zum Einlesen...
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.
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
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.