Forum: Mikrocontroller und Digitale Elektronik [PIC] SPI + '595 will nicht recht


von Joachim .. (joachim_01)


Lesenswert?

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
Noch kein Account? Hier anmelden.