Verilog/Verilog 실습
Verilog [vitis] FND 출력
오버헤드프레스
2023. 5. 19. 16:55
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xparameters.h"
#include "xgpio.h"
#define FND_ID XPAR_AXI_GPIO_FND_DEVICE_ID
#define COM_CHANNEL 1
#define SEG7_CHANNEL 2
int main()
{
init_platform();
print("started!\n\r");
XGpio_Config *cfg_ptr;
XGpio fnd_device;
cfg_ptr = XGpio_LookupConfig(FND_ID);
XGpio_CfgInitialize(&fnd_device, cfg_ptr, cfg_ptr->BaseAddress);
XGpio_SetDataDirection(&fnd_device, COM_CHANNEL, 0); //AVR에서 1주면 출력 0 주면 입력, vitis 에서는 반대
XGpio_SetDataDirection(&fnd_device, SEG7_CHANNEL, 0); //AVR에서 1주면 출력 0 주면 입력, vitis 에서는 반대
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11000000);
while(1){
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11000000);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11111001);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10100100);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10110000);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10011001);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10010010);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10000010);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b11111000);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10000000);
MB_Sleep(1000);
XGpio_DiscreteWrite(&fnd_device, COM_CHANNEL, 0b1110);
XGpio_DiscreteWrite(&fnd_device, SEG7_CHANNEL, 0b10011000);
MB_Sleep(1000);
}
cleanup_platform();
return 0;
}