Gast
#178841
Hallo, ich versuche gerade einen MCP2515 zum laufen zu bringen. Dazu hab ich mir den CAN-SPI Adapter von www.avrcard.com besorgt, den ich an einen ATmega16 angeschlossen habe (10 cm Leitung). Zum testen der Kommunikation vom MCP2515 und dem ATmega16, wollte ich einfach ein Paar Register setzen, und dann den gesetzten Wert einfach wieder auslesen, allerdings bekomm ich nur 0xFF zurück. Ich habe den relevanten Codeteil im Anhang mitgeschickt. Könnte ihn bitte jemand durchschauen und auf Fehler überprüfen? Oder vielleicht andere Tipps zur Fehlereingrenzung geben. Wär echt super! Vielen Dank im Voraus. Christian hier noch die spi-Funktionen: void spi_init(void) { /* Datadirection setzen */ DDRB = (1 << MOSI) | (1 << SCK) | (1 << CS); /* SPI Control-Register konfiguirieren */ SPCR = ( 1 << SPE ) | (1 << MSTR) | ( 1 << SPR1) | ( 1 << SPR0); } void spi_write(byte_t data) { SPDR = data; loop_until_bit_is_set(SPSR,SPIF); } void spi_cs(byte_t value) { if ( value != 0) { PORTB |= 0x10; } else { PORTB &= ~(0x10); } } byte_t spi_read(void) { return SPDR; }