制約ファイル
set_property IOSTANDARD LVCMOS33 [get_ports vauxn0]
set_property IOSTANDARD LVCMOS33 [get_ports vauxp0]
set_property IOSTANDARD LVCMOS33 [get_ports vauxn1]
set_property IOSTANDARD LVCMOS33 [get_ports vauxp1]
set_property IOSTANDARD LVCMOS33 [get_ports vauxn8]
set_property IOSTANDARD LVCMOS33 [get_ports vauxp8]
set_property IOSTANDARD LVCMOS33 [get_ports vauxn9]
set_property IOSTANDARD LVCMOS33 [get_ports vauxp9]
set_property IOSTANDARD LVCMOS33 [get_ports vn_in]
set_property IOSTANDARD LVCMOS33 [get_ports vp_in]
set_property IOSTANDARD LVCMOS33 [get_ports PWM0]
set_property PACKAGE_PIN U13 [get_ports PWM0]
#include <stdio.h>
#include "platform.h"
#include "xsysmon.h"
#include "xparameters.h"
#include "xil_io.h"
#define MY_PWM 0x43C10000
#define SYSMON_DEVICE_ID XPAR_SYSMON_
#define XSysMon_RawToExtVoltage(AdcData) \
((((float)(AdcData))*(1.0f))/65536.0f)
static XSysMon SysMonInst;
static int SysMonFractionToInt(float FloatNum);
int main() {
u8 SeqMode;
u32 TempRawData,VccIntRawData,ExtVolRawData,i;
float TempData,VccIntData,ExtVolData;
int xStatus;
XSysMon_Config *SysMonConfigPtr;
XSysMon *SysMonInstPtr = &SysMonInst;
init_platform();
print("Hello World\n\r");
SysMonConfigPtr = XSysMon_LookupConfig(SYSMON_DEVICE_ID);
if(SysMonConfigPtr == NULL) printf("LookupConfig FAILURE\n\r");
xStatus = XSysMon_CfgInitialize(SysMonInstPtr, SysMonConfigPtr,SysMonConfigPtr->BaseAddress);
if(XST_SUCCESS != xStatus) printf("CfgInitialize FAILED\r\n");
XSysMon_GetStatus(SysMonInstPtr);
while(1)
{
while ((XSysMon_GetStatus(SysMonInstPtr) & XSM_SR_EOS_MASK) != XSM_SR_EOS_MASK);
ExtVolRawData = XSysMon_GetAdcData(SysMonInstPtr,XSM_CH_AUX_MIN+1);
ExtVolData = XSysMon_RawToExtVoltage(ExtVolRawData);
Xil_Out32(MY_PWM, (int)1024*ExtVolData);
}
return 0;
}
int SysMonFractionToInt(float FloatNum) {
float Temp;
Temp = FloatNum;
if (FloatNum < 0) {
Temp = -(FloatNum);
}
return( ((int)((Temp -(float)((int)Temp)) * (1000.0f))));
}