0
Я написал просто приложение Microblaze C, чтобы проверить дисплей платы с помощью кнопки для переключения между шестнадцатеричным и двоичным режимами.Программа работает правильно только в режиме отладки
Вот мой код:
#include <xparameters.h>
#include <xgpio.h>
int main()
{
XGpio display, digit, bcd, butt; // four variables are defined named display, digit, bcd, butt
int flag = 1;
XGpio_Initialize (&display, XPAR_AXI_GPIO_0_DEVICE_ID);
XGpio_SetDataDirection (&display,1,0); // set display as output ports
XGpio_Initialize (&digit,XPAR_AXI_GPIO_1_DEVICE_ID);
XGpio_SetDataDirection (&digit,1,0); // set digit as output ports
XGpio_Initialize (&bcd,XPAR_AXI_GPIO_2_DEVICE_ID);
XGpio_SetDataDirection (&bcd,1,0); // set bcd as output ports
XGpio_Initialize (&butt, XPAR_AXI_GPIO_3_DEVICE_ID);
XGpio_SetDataDirection (&butt,1,1); //set button as input port
while(1)
{
if (XGpio_DiscreteRead (&butt, 1) == 1)
{
if (flag==1)
{ flag=0; }
else
{ flag=1; }
} // toggle flag
XGpio_DiscreteWrite (&bcd, 1, flag); // set bcd to flag
XGpio_DiscreteWrite (&digit, 1, 7); // set n°8 digit
XGpio_DiscreteWrite (&display, 1, 99563243); // write to display
}
}
Когда я отлаживать на борту все в порядке. После загрузки на FPGA переключатель не работает.
Может кто-нибудь объяснить, почему?
Попробуйте определить флаг как Xuint32, а не int. – EkcenierK
Я пытаюсь с Xuint32, но поведение такое же: отладка на доске нормально, загрузка и запуск на FPGA-переключателе не работает, нажатие кнопки переключения не выполняется – Gian