CodevisionAVR - SPI komunikácia medzi dvoma ATmega16

Ahojte,

Stale nemozem rozchodit SPI komunikaciu medzi 2 x Atmega16

Mam nasledujucu shcemu:
image-share.com/image.php?img=150/25.png

Zdrojovy kod 1. MCU (MASTER - vysiela)

#include <mega16.h>
#include <delay.h>
#include <spi.h>

void main(void)
{
PORTB=0x00;
DDRB=0xB0;
ACSR=0x80;
SFIOR=0x00;
SPCR=0x54;
SPSR=0x00;
delay_ms(100);
spi('A');
delay_us(50);
spi('h');
delay_us(50);
spi('o');
delay_us(50);
spi('j');
delay_us(50);
spi('k');
delay_us(50);
spi('y');
delay_us(50);
while (1);
}

Zdrojovy kod 2. MCU (SLAVE - prijma data)

#include <mega16.h>
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

interrupt [SPI_STC] void spi_isr(void)
{
unsigned char data;
data=SPDR;
lcd_putchar(data);
}

void main(void)
{
PORTB=0x00;
DDRB=0x40;


ACSR=0x80;
SFIOR=0x00;

SPCR=0xC4;
SPSR=0x00;

// Clear the SPI interrupt flag
#asm
    in   r30,spsr
    in   r30,spdr
#endasm

// LCD module initialization
lcd_init(16);
lcd_putsf("Prijem z SPI");
// Global enable interrupts
#asm("sei")
lcd_gotoxy(0,1);
while (1);
}

Preblem je v tom, ze prvy znak mi prijme ale potom uz to vyhadzuje error vid schemu. Neviete v com moze byt problem, alebo co som zle nastavil?

:arrow_right: administrator: přejmenováno z “SPI CodevisionAVR ATmega16”

:arrow_right: administrator: přiloženy externí soubory

Je padesát mikrosekund dost času pro oba procesory?