ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
17191
alex_m (25.11.2004 10:45, просмотров: 10620)
SPI slave на ATmega162 Приветствую. Изучаю mega162 и пытаюсь соорудить на нем SPI slave. Написал вот такой примитивный код. Пока только передача данных, хочу передавать 8 байтов непрерывно:
#include 
#include 
#include 
 
char *data = "12345678"+0x00;
char *t;
 
void SPI_SlaveInit(void)
{
   DDRB = (1 << PB4) | (1 << PB5) | (1 << PB7);
   SPCR = (1 << SPE);
PORTB |  = (1 << PB6); 

 
}
 
int main(void)
{
   sei();
   SPI_SlaveInit();
 
   t = data;
   while (1)
   {
   if (*data != 0) {
     SPDR = data;
     data++;
   }
   else data = t;
   }
 
   return 1;
}
Смотрю осциллографом, вижу что SCK от мастера идет, SS выставляется, MOSI также в порядке, а вот от меня идет какой-то мусор, т.е. фактически ничего не передается. Что может быть и где я туплю?