Moin, wenn ich per SPI (ich benutze die PIC SPI Hardware-Funktion) 8 bit in das Schieberegister einschiebe klappt das. Im zweiten Durchgang aber passt's gar nimmermehr. 1. Schieben 0b01010101 ok 2. Schieben 0b10101010 ergibt: 0b10101011 Ich hab den '595 ausgetauscht, gleiches Ergebnis. Ich kämpfe jetzt seit ca 5 Stunden damit rum, langsam fällt mir nicht mehr ein was ich noch ausprobieren könnte. Kann es sein, daß sich die SPI-Funktion grundsätzlich für den '595 nicht eignet? Hab' bislang mit zwei SPI Devices am PIC gute Erfahrungen gemacht. OpenSPI(SPI_FOSC_16, MODE_00, SMPEND); //1. schieben Value = 1 + 2 + 4 + 8 ; WriteSPI(Value); PORTCbits.RC2 = 1; // PORTC |= 0b00000100; //RC2 = 1, in storage reg PORTCbits.RC2 = 0; // PORTC &= 0b11111011; //RC2 = 0, wieder wegnehmen wait (1000); //zum testen // PORTDbits.RD2 = 1; //Input register // PORTDbits.RD2 = 0; //Input register löschen //2. schieben Value = 16 + 32 + 64 +128 ; WriteSPI(Value); PORTCbits.RC2 = 1; // PORTC |= 0b00000100; //RC2 = 1, in storage reg PORTCbits.RC2 = 0; // PORTC &= 0b11111011; //RC2 = 0, wieder wegnehmen wait (1000); //zum testen // PORTDbits.RD2 = 1; //Input register // PORTDbits.RD2 = 0; //Input register löschen
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.