Gast
#1346111
Hallo! Ich habe vor vier 74HC595 und drei 74HC165 an SPI meines PIC 18F4550 zu betreiben. Das mit den 595 kapier ich schon. Also diese kaskadiere ich und sende jedesmal die vier Bytes raus, bevor die ihre Ausgänge aktualieren sollen. Ich programmiere mit dem C18 Compiler. In meinem Code werde ich ein Array aus vier Bytes für die Ansteuerung der 74HC595 einrichten. Mit bitweisen setzen oder löschen ( &=.., |=.. ) kann ich dann im Array jedes beliebige Bit, das ja einen Ausgang darstellt, manipulieren wie ich will. Danach wird das Array an der SPI Schnittstelle rausgeschoben. Jetzt hab ich nur das Problem mit den 74HC165. Wie häng ich die auf den Bus? Einfach nach den 74HC595 weiter kaskadieren? oder parallel drauf und dann irgendwie zwischen den 595 und 165 umschalten? Abfragen werde ich die 165 alle 1ms, die 595 bei Bedarf dann aktualisieren. So wie ich das verstanden habe muss ich ein "Dummy" Byte an den 165 senden und dann wird dessen Inhalt synchron eingelesen und steht mir dann im Buffer der SPI Schnittstelle zur Verfügung. Aber wie mache ich das mit drei Stück? Und dann hab ich das Byte im MC, jedes Bit sollte dann in anderen einem Array an einzelnen Stellen abgespeichert werden. Wie kann ich das in C machen? Also ich bekomme z.B.: 00110100 in den Buffer. Das Bit 0 sollte dann in z.B.: Eingang[0], das Bit 1 in Eingang[1] usw. gespeichert werden. Hoffe Ihr versteht mich und könnt mir bei all diesen Fragen weiterhelfen. Danke schon im Voraus. MfG Darkleon