Code: Select all
//Read Byte 1
spi_ss <: 0;
clearbuf(miso)
; sclk <: 0xAA;
sclk <: 0xAA;
sync(sclk);
miso :> inByteTmp;
data1 = ((bitrev(inByteTmp) >> 16));
//Read Byte 2
clearbuf(miso)
; sclk <: 0xAA;
sclk <: 0xAA;
sync(sclk);
miso :> inByteTmp;
data1 += (bitrev(inByteTmp) >> 24);
spi_ss <: 1;
//Read Byte 3
spi_ss <: 0;
clearbuf(miso)
; sclk <: 0xAA;
sclk <: 0xAA;
sync(sclk);
miso :> inByteTmp;
data2 = ((bitrev(inByteTmp) >> 16));
//Read Byte 4
clearbuf(miso)
; sclk <: 0xAA;
sclk <: 0xAA;
sync(sclk);
miso :> inByteTmp;
data2 += (bitrev(inByteTmp) >> 24);
spi_ss <: 1;
The ports are configured with clock blocks:
Code: Select all
configure_clock_rate(blk1, 100, spi_clock_div);
configure_out_port(sclk, blk1, 0);
configure_clock_src(blk2, sclk);
configure_in_port(miso, blk2);
clearbuf(sclk)
; //anyone else having the auto-formatting do stupid things like this?
start_clock(blk1)
;
start_clock(blk2)
; sclk <: 0xFF;