课程完整工程附件如下
LED.rar
(3.85 MB, 下载次数: 426)
课程main.c文件内容附件如下
main.c
(2.41 KB, 下载次数: 276)
main.c内容如下
[C] 纯文本查看 复制代码
//#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;
//
//
// //设置IO方向,bit7的方向为输出
// 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(1)
// {
// //设置bit7输出1
// Data = ((~(1<<7)) << 16) | (1<<7);
// Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DATA_LSW_OFFSET, Data);
// usleep(500000);
//
// //设置bit7输出0
// Data = ((~(1<<7)) << 16) & (~(1<<7));
// Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DATA_LSW_OFFSET, Data);
// usleep(500000);
// }
//}
#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))
{
//设置bit7输出1
XGpioPs_WritePin(&Gpio, 7, 0x1);
usleep(500000);
//设置bit7输出0
XGpioPs_WritePin(&Gpio, 7, 0x0);
usleep(500000);
i = 3;
}
while(i)
{
//设置bit7输出1
XGpioPs_WritePin(&Gpio, 7, 0x1);
usleep(500000);
//设置bit7输出0
XGpioPs_WritePin(&Gpio, 7, 0x0);
usleep(500000);
i = i - 1;
}
//设置bit7输出0
XGpioPs_WritePin(&Gpio, 7, 0x0);
}
return 0;
}
//#include "xparameters_ps.h"
//#include "xil_io.h"
//#define DDR_BASEARDDR XPAR_DDR_MEM_BASEADDR + 0x10000000
//
//int main()
//{
// int i;
// int rev[32];
//
// for(i=0; i<32; i++)
// {
// Xil_Out32(DDR_BASEARDDR+i*4,i);
// }
//
// for(i=0; i<32; i++)
// {
// rev[i] = Xil_In32(DDR_BASEARDDR+i*4);
// }
//
// return 0;
//}
|