Gast
#2643878
Hallo, ich habe die letzte Schaltung in der PDF aufgebaut und jeweils 2 ICs Kaskadiert (µC_MISO --> IC1_PIN9 --> IC2_PIN10) http://www.mikrocontroller.net/attachment/1483/SPI_74HC595.pdf Ich verwende statt PB0 den Port PB1. Ich bekomme aber mit folgenden Code nur Nullen zurück... Ich weiss leider nicht mehr weiter könnt ihr mir bitte helfen? Noch eine Frage: Wie kann ich ein char binär über uart ausgeben? das ich z.b. ein A zu 01000001 mache. Code void serpa_init (void) { DDRB |= (1<<PB5) | (1<<PB7) | (1<<PB4) | (1<<PB1); //MOSI, SCK, SS, PB1 als OUT // !!! SS muss OUT sein, damit SPI nicht in Slave-Mode wechselt !!! PORTB |= (1<<PB4) | (1<<PB1); //SS und PB1 auf High // SPI als Master // High-Bits zuerst // SCK ist HIGH wenn inaktiv SPCR = (1 << SPE) | (1 << MSTR) | (1 << CPOL); // pullup an MISO vermeidet Floaten PORTB |= (1<<PB5); // maximale Geschwindigkeit: F_CPU / 2 SPSR |= (1 << SPI2X); } void serpa_in (unsigned char* serpain) { unsigned char anz = 2; do { // 74HC165 latchen PORTB &= ~(1<<PB1); //PB1 (PL) auf Low (Daten Lesen) PORTB |= (1<<PB1); //PB1 (PL )auf High // SPDR lesen startet Uebertragung *serpain++ = SPDR; } while (--anz > 0); }