[an error occurred while processing this directive]
|
Работаю без прерываний без DMA.Настроил SPI контроллер сперва на передачу байта все ок, затем перестраиваю регистр SPICTL0 на прием и читаю из RDBR0 чтобы запустить тактирование, далее while пока флаг RXS в регистре SPIST0 не станет в 1. Чтения никакого не происходит клоков нету, и так пока я снова не прочитаю из рег. RDBR0. А надо один байт передать и два принять.
int i;
int bufrx_at25[2];
sysreg_write(sysreg_IOPG, SPI0_Controller_Page);
i = io_space_read(SPICTL0);
i = i & 0xfffc;
i = i | 0x0001;
io_space_write(SPICTL0 ,i);
io_space_write(TDBR0 ,0x15);
while( ((io_space_read(SPIST0)) & 0x08) != 0x00){}
i = io_space_read(SPICTL0);
i = i & 0xfffc;
io_space_write(SPICTL0 ,i);
i = io_space_read(RDBR0);
while( ((io_space_read(SPIST0)) & 0x20) == 0x00){}
i = io_space_read(RDBR0);
while( ((io_space_read(SPIST0)) & 0x20) == 0x00){}
bufrx_at25[0] = io_space_read(RDBR0);
while( ((io_space_read(SPIST0)) & 0x20) == 0x00){}
bufrx_at25[1] = io_space_read(RDBRS0);
E-mail: info@telesys.ru