разборки с 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;
}