ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
17236 Топик полностью
alex_m (26.11.2004 03:34, просмотров: 1) ответил Bill на Ну как же? Тот же флаг и есть: SPIF. Его можно и программно опрашивать и в качестве источника запроса
Немного модифицировал код... пока без прерываний, только проверка флага SPIF. На MISO по-прежнему тишина...
#include 
#include 
#include 

char *data = "12345678"+0x00;
char *t;

// MOSI: input
// MISO: output
// SS: input
// SCK: input
void SPI_SlaveInit(void)
{
	DDRB = (1 << PB4) | (1 << PB5) | (1 << PB7);
//	SPCR = (1 << SPIE) | (1 << SPE);
	SPCR = (1 << SPE);	
	PORTB |= (1 << PB6);
}

int main(void)
{
  sei();
  SPI_SlaveInit();
  
  t = data;
  while (1)
  {
    while ( !(SPSR & (1 << SPIF)) ) ;
       if (*data == 0) {
           data = t;
       }
       SPDR = *data;
       data++;*
  }

  return 1;
}