Появилась проблема при работе с SPI на меге64. И не то, чтобы я неопытный, и проектов понаделал кучу, но вошел в ступор и никак не могу понять в чем проблема.
Mega в MasterMode.
Инициализация:
Код
void spi_init(void)
{
SPCR = 0x5С; //setup SPI
SPSR = 0x00; //setup SPI
}
{
SPCR = 0x5С; //setup SPI
SPSR = 0x00; //setup SPI
}
Передача данных:
Код
char spi_sendbyte(char byte)
{
SPDR = byte; // Start transmission
while(!(SPSR & (1<<SPIF))); // Wait for transmission complete
return (SPDR);
}
{
SPDR = byte; // Start transmission
while(!(SPSR & (1<<SPIF))); // Wait for transmission complete
return (SPDR);
}
Код проверен, использовался не раз.
При вызове spi_sendbyte контроллер намертво залипает, при этом ножки его (SCK, MOSI) так и не дергаются.
Помогите разобраться в проблеме.