передаю вот так
tx_on(); ..включение перед
delay_ms(5); на случ всякий
PORTB.2=0; выборка кристалла
spi_tx(0xB
; команда
spi_tx(0x2D); синхра
while(PINB.4 != 1); следим за готовностью передавать дальше (SDO транс)... пока это не сделал приемник вообще ничего не ловил
spi_tx(0xD4); синхра
while(PINB.4 != 1);
spi_tx(0x56); собствноо данные
while(PINB.4 != 1);
spi_tx(0x57); собствноо данные
while(PINB.4 != 1);
spi_tx(0x00); как рекомендуют в конце передачи
while(PINB.4 != 1);
PORTB.2=1; не выбираем кристалл
преамбулу не передаю так как использую TX регистр ...написано что передаст сам)
на 16 ноге DDET повесил светодиодик...один фиг что в эфире постоянно что то летает и он моргает без передыху. время отклика MED
выход 7 FINT описано что когда трансивер получил синхру и фифошка полна то выскочит 1...заведено на прерывание.
по прерыванию следущее
PORTD.7=0; притягиваем nFSEL к 0.
SPDR=0xFF;
while(!(SPSR & (1‹‹SPIF)));
incomingdata[0]=SPDR; ловим 1ый байт (все честно)
SPDR=0xFF;
while(!(SPSR & (1‹‹SPIF)));
incomingdata[1]=SPDR; ловим 2ой байт (ноль)
PORTD.7=1;
непонятно когда читать второй байт ..по какому признаку ? я просто все подряд читаю ...
да ...работаю на 900 мгц