/*
 * "Hello World" example.
 *
 * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
 * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
 * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
 * device in your system's hardware.
 * The memory footprint of this hosted application is ~69 kbytes by default
 * using the standard reference design.
 *
 * For a reduced footprint version of this template, and an explanation of how
 * to reduce the memory footprint for a given application, see the
 * "small_hello_world" template.
 *
 */

#include <stdio.h>
#include <system.h>
#include <io.h>

void readdata(char num)
{
	int i;
	int a;

	for(i=0;i<num/4 + 1;i++)
	{
		a = IORD_32DIRECT(XMG_SPI_BASE,0*16);
		printf("%d  ",a);

		a = IORD_32DIRECT(XMG_SPI_BASE,0*16+4);
		printf("%d  ",a);

		a = IORD_32DIRECT(XMG_SPI_BASE,0*16+8);
		printf("%d  ",a);

		a = IORD_32DIRECT(XMG_SPI_BASE,0*16+12);
		printf("%d  \n",a);
	}
}


int main()
{
	IOWR_32DIRECT(XMG_SPI_BASE,1*16, 0x12345678);

	IOWR_32DIRECT(XMG_SPI_BASE,1*16+4, 0x87654321);

	IOWR_32DIRECT(XMG_SPI_BASE,1*16+8, 0x1234abcd);

	IOWR_32DIRECT(XMG_SPI_BASE,1*16+12, 0xabcd8765);

	usleep(10000);

	while(1)
	{
		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 16);
		usleep(10000);



		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 15);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 14);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 13);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 12);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 11);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 10);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 9);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 8);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 7);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 6);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 5);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 4);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 3);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 2);
		usleep(10000);

		IOWR_32DIRECT(XMG_SPI_BASE,2*16, 1);
		usleep(10000);
	}

  return 0;
}
