适配网站建设模版电子商务网站实例
文章目录
- 1 实验任务
- 2 系统框图
- 3 软件设计
1 实验任务
本实验任务是通过PS侧的XADC接口,读取PL侧的XADC硬核测量的芯片温度、供电电压等信息, 并通过串口打印出来。
2 系统框图
3 软件设计
注意事项:无。
/***************************** Include Files ********************************/
#include "stdio.h"
#include "xparameters.h"
#include "xadcps.h"
#include "xstatus.h"
#include "sleep.h"
/************************** Constant Definitions ****************************/
#define XADC_DEVICE_ID XPAR_XADCPS_0_DEVICE_ID
/**************************** Type Definitions ******************************//***************** Macros (Inline Functions) Definitions ********************//************************** Function Prototypes *****************************/
int XadcInit(XAdcPs* XadcInstPtr);
/************************** Variable Definitions ****************************/
XAdcPs XadcInst;
/****************************************************************************/int XadcInit(XAdcPs* XadcInstPtr)
{//int Status;XAdcPs_Config* XadcConfigPtr;//XadcConfigPtr = XAdcPs_LookupConfig(XPAR_XADCPS_0_DEVICE_ID);if (XadcConfigPtr == NULL) {return XST_FAILURE;}Status = XAdcPs_CfgInitialize(XadcInstPtr, XadcConfigPtr, XadcConfigPtr->BaseAddress);if (Status != XST_SUCCESS) {return XST_FAILURE;}//XAdcPs_SetSequencerMode(XadcInstPtr, XADCPS_SEQ_MODE_SAFE);//return XST_SUCCESS;
}int main()
{//int Status;u32 TempRawData; // 温度 原始数据u32 VccPintRawData; // PS侧内核电压 原始数据u32 VccPauxRawData; // PS侧辅助电压 原始数据u32 VccoDdrRawData; // PS侧DDR电压 原始数据u32 VccIntRawData; // PL侧内核电压 原始数据u32 VccAuxRawData; // PL侧辅助电压 原始数据u32 VccBramRawData; // PL侧BRAM电压 原始数据float TempRealData; // 温度 真实数据float VccPintRealData; // PS侧内核电压 真实数据float VccPauxRealData; // PS侧辅助电压 真实数据float VccoDdrRealData; // PS侧DDR电压 真实数据float VccIntRealData; // PL侧内核电压 真实数据float VccAuxRealData; // PL侧辅助电压 真实数据float VccBramRealData; // PL侧BRAM电压 真实数据//printf("PS XADC Test\n");//Status = XadcInit(&XadcInst);if (Status == XST_FAILURE) {printf("PS XADC Initialization Failed.\n");}//while(1) {sleep(5);//printf("\n\n");// 获取温度TempRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_TEMP);TempRealData = XAdcPs_RawToTemperature(TempRawData);printf("温度 = %f C.\n", TempRealData);// 获取PS侧内核电压VccPintRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCPINT);VccPintRealData = XAdcPs_RawToVoltage(VccPintRawData);printf("PS侧内核电压\t\t= %.3f V.\n", VccPintRealData);// 获取PS侧辅助电压VccPauxRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCPAUX);VccPauxRealData = XAdcPs_RawToVoltage(VccPauxRawData);printf("PS侧辅助电压\t\t= %.3f V.\n", VccPauxRealData);// 获取PS侧DDR电压VccoDdrRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCPDRO);VccoDdrRealData = XAdcPs_RawToVoltage(VccoDdrRawData);printf("PS侧DDR电压\t\t= %.3f V.\n", VccoDdrRealData);// 获取PL侧内核电压VccIntRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCINT);VccIntRealData = XAdcPs_RawToVoltage(VccIntRawData);printf("PL侧内核电压\t\t= %.3f V.\n", VccIntRealData);// 获取PL侧辅助电压VccAuxRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCAUX);VccAuxRealData = XAdcPs_RawToVoltage(VccAuxRawData);printf("PL侧辅助电压\t\t= %.3f V.\n", VccAuxRealData);// 获取PL侧BRAM电压VccBramRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VBRAM);VccBramRealData = XAdcPs_RawToVoltage(VccBramRawData);printf("PL侧BRAM电压\t= %.3f V.\n", VccBramRealData);}//return 0;
}