[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
У меня мастером работает AVR. Ноги соединены
DT0 - MISO
DR0 - MOSI
SCLK0 - SCK
TFS0 - RFS0 - PB4
В ADSP инициализация такая:
ar = RFSR | RFSW | TFSR | TFSW | 7;
dm(Sport0_Ctrl_Reg) = ar;
В AVR инициализация такая: AVR должен инициализировать SPI после ADSP. Цикл без фреймсинка нужен, поскольку SPORT проглатывает два первых клока после инициализации. Ну и собственно обмен: В ADSP жизнь происходит по прерываниям.
E-mail:
info@telesys.ru
CBI( PORTB, 4 );
SPCR = (1<
// MSB first, master, CPHA=0, CPOL=1, Fclk = Fosc/4
tmp = SPSR;
tmp = SPDR; // clear SPIF
// SPI cycle WITHOUT frame sync
SPDR = 0;
while ( !( SPSR & (1<
tmp = SPDR;
}
BYTE spi( BYTE c )
{
SBI( PORTB, 4 ); // fsync high
SPDR = c;
while ( !( SPSR & (1<
CBI( PORTB, 4 ); // fsync low
return SPDR;
}
Ответы