Skocz do zawartości

Atmega 328 poblem z ekspanderem, SPI.


dejmieno

Pomocna odpowiedź

Witam,

Usiluje polaczyc sie z ekspanderem pinow IO MCP23S08-E/P poprzez SPI. Czy myslicie ze kod jest dobry? Jesli tak tzn. ze problem jest gdzies w polaczeniu ekspandera. Jak widac ponizej probuje zapalic diode led pod pinem GP0 ekspandera. 

#include <avr/io.h>
#include <util/delay.h>

void init_spi(void);

void transfer_data(uint8_t data);

int main(void) {
	
	init_spi();

	transfer_data(0x40);
	transfer_data(0x00);
	transfer_data(~0x01);

	transfer_data(0x40);
	transfer_data(0x0A);
	transfer_data(0x01);
	while (1) {

	}
}

void init_spi(void) {
	DDRB = (1 << 3) | (1 << 5);

	SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR0);
}

void transfer_data(uint8_t data) {
	SPDR = data;
	while(!(SPSR & (1 << SPIF) ));
}

 

Link do komentarza
Share on other sites

@dejmieno, powtórzę swój komentarz z innego tematu 😉

Jeśli pytasz o poprawność funkcji to przydałaby się komentarze lub słowny opis tego, co według Ciebie (i jak) robi dany fragment kodu. Inaczej może się okazać, że ktoś potwierdzi poprawność kodu, a całość będzie działała inaczej niż myślisz. W tym wypadku warto też pokazać sposób podłączenia ekspandera, bo bez tego ciężko określić co zrobiłeś z pinami ustawiającymi adres ekspandera.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.