Professional Documents
Culture Documents
Helloworld Adam Taylor Part 13
Helloworld Adam Taylor Part 13
*/
#include <stdio.h>
#include "platform.h"
#include "xadcps.h"
#include "xgpiops.h"
#include "xil_types.h"
#include "Xscugic.h"
#include "Xil_exception.h"
#define XPAR_AXI_XADC_0_DEVICE_ID 0
#define ledpin 47
#define pbsw 51
int main()
{
XAdcPs_Config *ConfigPtr;
int Status;
// u32 sw;
XGpioPs_Config *GPIOConfigPtr;
//status of initialisation
int Status_ADC;
//temperature readings
u32 TempRawData;
float TempData;
u32 VccIntRawData;
float VccIntData;
u32 VccAuxRawData;
float VccAuxData;
//Vbram readings
u32 VBramRawData;
float VBramData;
//VccPInt readings
u32 VccPIntRawData;
float VccPIntData;
//VccPAux readings
u32 VccPAuxRawData;
float VccPAuxData;
//Vddr readings
u32 VDDRRawData;
float VDDRData;
init_platform();
//GPIO Initilization
GPIOConfigPtr = XGpioPs_LookupConfig(XPAR_XGPIOPS_0_DEVICE_ID);
if (Status != XST_SUCCESS) {
return XST_FAILURE;
//XADC initilization
ConfigPtr = XAdcPs_LookupConfig(XPAR_AXI_XADC_0_DEVICE_ID);
if (ConfigPtr == NULL) {
return XST_FAILURE;
Status_ADC = XAdcPs_CfgInitialize(XADCInstPtr,ConfigPtr,ConfigPtr->BaseAddress);
if(XST_SUCCESS != Status_ADC){
return XST_FAILURE;
//self test
Status_ADC = XAdcPs_SelfTest(XADCInstPtr);
if (Status_ADC != XST_SUCCESS) {
return XST_FAILURE;
//stop sequencer
XAdcPs_SetSequencerMode(XADCInstPtr,XADCPS_SEQ_MODE_SINGCHAN);
//disable alarms
XAdcPs_SetAlarmEnables(XADCInstPtr, 0x0);
XAdcPs_SetSeqInputMode(XADCInstPtr, XADCPS_SEQ_MODE_SAFE);
XAdcPs_SetSeqChEnables(XADCInstPtr,XADCPS_CH_TEMP|XADCPS_CH_VCCINT|XADCPS_CH_VCCA
UX|XADCPS_CH_VBRAM|XADCPS_CH_VCCPINT|
XADCPS_CH_VCCPAUX|XADCPS_CH_VCCPDRO);
SetupInterruptSystem(&Intc, &Gpio, GPIO_INTERRUPT_ID);
while(1){
TempData = XAdcPs_RawToTemperature(TempRawData);
VccIntData = XAdcPs_RawToVoltage(VccIntRawData);
VccAuxData = XAdcPs_RawToVoltage(VccAuxRawData);
VBramData = XAdcPs_RawToVoltage(VBramRawData);
VccPIntData = XAdcPs_RawToVoltage(VccPIntRawData);
VccPAuxData = XAdcPs_RawToVoltage(VccPAuxRawData);
VDDRData = XAdcPs_RawToVoltage(VDDRRawData);
return 0;
Xil_ExceptionInit();
/*
* use.
*/
IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);
XScuGic_CfgInitialize(GicInstancePtr, IntcConfig,
IntcConfig->CpuBaseAddress);
/*
*/
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,
GicInstancePtr);
/*
* interrupt for the device occurs, the handler defined above performs
*/
XScuGic_Connect(GicInstancePtr, GpioIntrId,
(Xil_ExceptionHandler)XGpioPs_IntrHandler,
(void *)Gpio);
XGpioPs_IntrEnablePin(Gpio, pbsw);
XScuGic_Enable(GicInstancePtr, GpioIntrId);
Xil_ExceptionEnableMask(XIL_EXCEPTION_IRQ);
int delay;
printf("****button pressed****\n\r");
toggle = !toggle;
{}