int main()
{
    init_platform();

    XIOModule_Initialize(&gpo, XPAR_IOMODULE_0_DEVICE_ID); // Initialize the GPO module

	microblaze_register_handler(XIOModule_DeviceInterruptHandler,
			XPAR_IOMODULE_0_DEVICE_ID); // register the interrupt handler

	XIOModule_Start(&gpo); // start the GPO module

	XIOModule_Connect(&gpo, XIN_IOMODULE_FIT_1_INTERRUPT_INTR, timerTick,
			NULL); // register timerTick() as our interrupt handler
	XIOModule_Enable(&gpo, XIN_IOMODULE_FIT_1_INTERRUPT_INTR); // enable the interrupt

	microblaze_enable_interrupts(); // enable global interrupts

	u8 leds = 0;
	while (1){
		// write the LED value to port 1 (you can have up to 4 ports)
		XIOModule_DiscreteWrite(&gpo, 1, leds++);
		xil_printf("%d", leds);
		xil_printf(",");
		delay(500); // delay one half second
	}
    return 0;
}
Beispiel #2
0
void read_from_mp(void){
	// Read data:
	MP_DATA = XIOModule_DiscreteRead(&gpio, 1);

	if(MP_DATA & 0x80000000){ // if MP_VALID is high
		u8 index = (u8)((MP_DATA & 0x3F000000)>>24);  // store data into buffer
		buffer[index] = MP_DATA & 0x00FFFFFF;

		IO_DATA |= 0x40000000;  // raise IO_ACK

		XIOModule_DiscreteWrite(&gpio, 1, IO_DATA);
	}
Beispiel #3
0
int main()
{
    u32 uDevId = XPAR_IOMODULE_0_DEVICE_ID;
    XIOModule mcsIOMdule;
    init_platform();
    //MicroBlaze MCS IOModule Initialize
    XIOModule_Initialize(&mcsIOMdule, uDevId);
    //set GPO1
    XIOModule_DiscreteWrite(&mcsIOMdule, 1,2);
    //UART
    print("Hello World\n\r");
    cleanup_platform();
    return 0;
}
Beispiel #4
0
int main()
{
    u32 uDevId = XPAR_IOMODULE_0_DEVICE_ID;
    XIOModule mcsIOMdule;
    u8 read_data_8;
    u8 read_data_8_old;
    init_platform();
    XIOModule_Initialize(&mcsIOMdule, uDevId);
    print("Hello World + GPIO \n\r");
    while(1){
      read_data_8 = XIOModule_DiscreteRead(&mcsIOMdule, 1);
      if( read_data_8 !=  read_data_8_old){
        XIOModule_DiscreteWrite(&mcsIOMdule, 1, read_data_8);
        xil_printf("sw %02x\n\r",read_data_8);
        read_data_8_old = read_data_8;
      }
    }
    return 0;
}