Gast
#546916
Hallo, ich bin erst vor kurzem auf die Idee gekommen einen PIC zu programmieren (18F452). Womit ich noch Probleme habe ist das Setzen von Pins auf High oder Low. Der PIC besitzt glaub ich 5 Ports (A-E) Ich würde jetzt gerne Software SPI implementieren und eine kaskadierte Reihe von 74HC165 Registern auslesen. Laut Datenblatt muss der Pin 1 des Registers zuerst auf High und anschließend auf Low gesetzt werden, damit ich die Eingänge an Pin 9 tacktweise auslesen kann. Ich hab gute Kenntnisse in C und würde auch gerne den PIC in C programmieren. Die Frage ist nun...kann man einen einzelnen Pin ansteuern (pseudocode: pind2 = 1) oder muss ich immer einen Hex Wert an PortD "ausgeben" z.B. PORTD = 0x08 damit der einzelne Pin High oder Low geschaltet wird. TRISD ist dafür dafür da die Pins als Ausgang bzw. Eingang zu konfigurieren, oder hab ich da etwas falsch verstanden? Wenn mir jemand erklären kann wie ich nun ein Schieberegister auslesen kann wäre ich schon einen Schritt weiter. Ich will nicht, dass mir einer das Denken abnimmt, aber ein paar Tipps würden die Sache schon einfacher machen. Software SPI habe ich Application Maestro konfiguriert, da ich SPI gerne über Port D laufen lassen möchte. Die Konfiguration ist wie folgt: #define SW_CS_PIN PORTDbits.RD2 // Chip Select #define TRIS_SW_CS_PIN TRISBbits.TRISD2 #define SW_DIN_PIN PORTDbits.RD1 // Data in #define TRIS_SW_DIN_PIN TRISDbits.TRISD1 #define SW_DOUT_PIN PORTDbits.RD0 // Data out #define TRIS_SW_DOUT_PIN TRISDbits.TRISD0 #define SW_SCK_PIN PORTDbits.RD3 // Clock #define TRIS_SW_SCK_PIN TRISDbits.TRISD3 Danke schonmal Christoph