/*
 * main.c
 *
 *  Created on: 20211229
 *      Author: xiaomeige
 */


//#include "stdio.h"
//#include "xil_io.h"
//#include "xgpiops_hw.h"
//#include "unistd.h"
//#include "stdint.h"
//
//#include "xil_types.h"
//int main(void)
//{
//		u32 reg_val = 0;
//		u32 Data = 0;
//
//		uint32_t i = 100;
//
//		//IObit7ķΪ
//		reg_val = Xil_In32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DIRM_OFFSET);
//		Data = reg_val | (1<<7);
//		Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DIRM_OFFSET, Data);
//
//		//ʹܣbit7ʹ
//		reg_val = Xil_In32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_OUTEN_OFFSET);
//		Data = reg_val | (1<<7);
//		Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_OUTEN_OFFSET, Data);
//
//		while(i)
//		{
//			//bit71
//			Data = ((~(1<<7)) << 16) | (1<<7);
//			Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DATA_LSW_OFFSET,  Data);
//			usleep(500000);
//
//			//bit70
//			Data = ((~(1<<7)) << 16) & (~(1<<7));
//			Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DATA_LSW_OFFSET,  Data);
//			usleep(500000);
//			i--;
//		}
//}


#include "xgpiops.h"
#include "unistd.h"

XGpioPs Gpio;
XGpioPs_Config *ConfigPtr;

//uint32_t i=0;

int main(void)
{


	ConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
	XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);


	XGpioPs_SetDirectionPin(&Gpio, 7, 1);
	XGpioPs_SetOutputEnablePin(&Gpio, 7, 1);

	/*MIO47Ϊ*/
	XGpioPs_SetDirectionPin(&Gpio, 47, 0);
	XGpioPs_SetOutputEnablePin(&Gpio, 47, 0);

	while(1)
	{
		while(!XGpioPs_ReadPin(&Gpio, 47))
		{
			//bit71
			XGpioPs_WritePin(&Gpio, 7, 0x1);
			usleep(500000);

			//bit70
			XGpioPs_WritePin(&Gpio, 7, 0x0);
			usleep(500000);
//			i = 3;
		}

//		while(i)
//		{
//			//bit71
//			XGpioPs_WritePin(&Gpio, 7, 0x1);
//			usleep(500000);
//
//			//bit70
//			XGpioPs_WritePin(&Gpio, 7, 0x0);
//			usleep(500000);
//			uint32_t i = i;
//			i = i - 1;
//		}

		//bit70
		XGpioPs_WritePin(&Gpio, 7, 0x0);
	}



	return 0;
}



