The code:
Code: Select all
...
out port spi_ss = XS1_PORT_1E;
out port mosi = XS1_PORT_1D;
out buffered port:8 sclk = XS1_PORT_1C;
in buffered port:8 miso = XS1_PORT_1F;
clock blk1 = XS1_CLKBLK_1;
clock blk2 = XS1_CLKBLK_2;
...
int main(void){
unsigned short data;
sendShort((unsigned short) 0b1111111111110000); //configuring the ADC. MOSI is bit banged.
configure_clock_rate(blk1, 100, 4);
configure_out_port(sclk, blk1, 0);
configure_clock_src(blk2, sclk);
configure_in_port(miso, blk2);
clearbuf(sclk)
; //anyone else's autoformat do this?
start_clock(blk1)
;
start_clock(blk2)
; sclk <: 0xFF;
while (1) {
spi_select();
data = spi_in_short(); // SPI class
spi_deselect();
delay(); //10ns delay, so the ADC doesn't miss the pulse
}
}