приветсвую 
пробую делать связь по SPI между 2-мя mega16 (1й master, 2й slave). (использую СAVR2, шпротеус). Slave из 8 байтов пакета принимает только первый. тоже самое наблюдается если использовать только 2й мк в слэйв и данные посылать с генератора SPI (SPI monitor). где может быть ошибка? может где-то надо указывать сколько байт пересылается за 1 раз? перерыл инет - везде либо теория или пример с приемом 1 байта.
| Код | // SPI interrupt service routine interrupt [SPI_STC] void spi_isr(void) { unsigned char data; data=SPDR; printf("%02X\n\r",data); }
void main(void) {
PORTB=0x00; DDRB=0x40;
// SPI Type: Slave // SPI Clock Rate: 31,250 kHz // SPI Clock Phase: Cycle Half // SPI Clock Polarity: Low // SPI Data Order: MSB First SPCR=0xC3; SPSR=0x00;
// Clear the SPI interrupt flag #asm in r30,spsr in r30,spdr #endasm
// Global enable interrupts #asm("sei")
while(1);
|
|