Здравствуйте. Вопрос к гуру, на сколько будет меньше разрыв данных при посылке через SPI 16бит, если ожидание готовности написать на ассемблере? И сразу второй вопрос, как правильно её вставить?
void sendWord(uint16_t data)
{
SPDR = data;
while(!(SPSR & (1<<SPIF))); // это заменить на ассемблерную вставку
//вот тут видно задержку
SPDR = data>>8;
while(!(SPSR & (1<<SPIF))); // и это заменить на ассемблерную вставку
}
Этот код не работает (ассемблерная вырезка из даташита). Я не соображаю...
asm volatile(
"Wait_Transmit: in r16, SPSR sbrs r16, SPIF rjmp Wait_Transmit ret"
);
Пока писал сообщение, понял свой косяк, регистр r16 в строке выше у меня не соответствует data.Тогда еще вопрос, как полностью этот кусок "sendWord" написать на ассемблере?
Заранее Спасибо!