I send 16bits. 1 read/write bit, 7 address bits and 8 datas bits.
void WriteReg(alt_u8 adress, alt_u8 m_data)
{
alt_u16 tosend;
tosend = 0x8000 | ((adress << 8) & 0x7F00) | (m_data & 0x00FF);
IOWR(SPI_CYCLONE3_BASE, ALTERA_AVALON_SPI_TXDATA_REG, tosend);
while (!(IORD(SPI_CYCLONE3_BASE, ALTERA_AVALON_SPI_STATUS_REG) & 0x0020));
}
alt_u8 ReadReg(alt_u8 adress)
{
alt_u16 tosend;
tosend = (adress << 8) & 0x7F00;
IOWR(SPI_CYCLONE3_BASE, ALTERA_AVALON_SPI_TXDATA_REG, tosend);
while (!(IORD(SPI_CYCLONE3_BASE, ALTERA_AVALON_SPI_STATUS_REG) & 0x0020));
return IORD(SPI_CYCLONE3_BASE, ALTERA_AVALON_SPI_RXDATA_REG);
}