ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
17291
alex_m (26.11.2004 16:50, просмотров: 2099)
разборки с SPI master на ATmega162... Приветствую. ВОт такой простейший код не могу заставить корректно работать. Отладка с помощью мигающих светодиодов показала, что заход в условие
if ( (SPSR & (1 << SPIF)) )
не происходит, а отсюда нету никаких клоков и пр. Второй вопрос: а почему? PS. Если важно, то я использую STK500 для отладки....
#include 
#include 
#include 
#include 

char *data = "X";

/*
 SPI init
 Mode: master
 MOSI: output
 MISO: input
 SS: output
 SCK: output
 Osc frequency: 1.23MHz
 Clock: Fosc/16 ~ 500kbs
*/
void SPI_MasterInit(void)
{
	DDRB = (1 << PB4) | (1 << PB5) | (1 << PB7);
	SPCR = (1 << SPE) | (1 << MSTR);
}

int main(void)
{
  SPI_MasterInit();
  sei();
 
  while (1)
  {
	if ( (SPSR & (1 << SPIF)) ) {
		//LED0_blink();
		SPDR = *data;
	}
	//LED0_blink();
  }

  return 1;
}