int main(void) { CyGlobalIntEnable; /* Enable global interrupts. */ DisplayStart(); Display("System init..."); RTC_WDT_Init(); InitNetwork(); Display("Sync time..."); uint8_t number = 0; while((result = NTPsync()) != TIME_SYNC_OK) { char buf[10]; sprintf(buf, "Sync time -%d", number++); LCD_Position(0,0); LCD_PrintString(buf); CyDelay(500); } Display("Sync ok "); CyDelay(4*TIMEOUT_USER_READ_INFO); for(;;) { DisplayRealTime(); CyDelay(500); } }
int main(void) { CyGlobalIntEnable; /* Enable global interrupts. */ InitNetwork(); DisplayStart(); RTC_WDT_Init(); Display("Sync time..."); CyDelay(2000); if(NTPsync() == TIME_SYNC_OK) { Display("Sync ok"); CyDelay(4 * TIMEOUT_USER_READ_INFO); result = TIME_SYNC_OK; } else { Display("Sync time error"); CyDelay(4 * TIMEOUT_USER_READ_INFO); result = TIME_SYNC_ERR; } for(;;) { DisplayRealTime(); CyDelay(100); } }
int main() { DisplayStart(); while(SystemInit() == ERROR); BLE_start(); currentState = TIME_SYNC; for(;;) { switch (currentState) { case TIME_SYNC: { result = TimeSynchronize(); if(result == TIME_SYNC_OK) { currentState = READY; } break; } case READY: { result = CheckReady(); if(result == NO_ERROR) { currentState = CHECK_GATE; } else if(result == REBOOT) { currentState = TIME_SYNC; } break; } case CHECK_GATE: { result = CheckGate(); if(result == GATE_OPEN) { currentState = SAVE_RESULT; } else { currentState = READY; } break; } case SAVE_RESULT: { SaveResult(); currentState = READY; break; } } MyDelay(TIMEOUT_DELAY); } }
void DemoInitialize() { int Status; XAxiVdma_Config *vdmaConfig; int i; /* * Initialize an array of pointers to the 3 frame buffers */ for (i = 0; i < DISPLAY_NUM_FRAMES; i++) { pFrames[i] = frameBuf[i]; } /* * Initialize a timer used for a simple delay */ TimerInitialize(SCU_TIMER_ID); /* * Initialize VDMA driver */ vdmaConfig = XAxiVdma_LookupConfig(VGA_VDMA_ID); if (!vdmaConfig) { xil_printf("No video DMA found for ID %d\r\n", VGA_VDMA_ID); return; } Status = XAxiVdma_CfgInitialize(&vdma, vdmaConfig, vdmaConfig->BaseAddress); if (Status != XST_SUCCESS) { xil_printf("VDMA Configuration Initialization failed %d\r\n", Status); return; } /* * Initialize the Display controller and start it */ Status = DisplayInitialize(&dispCtrl, &vdma, DISP_VTC_ID, DYNCLK_BASEADDR, pFrames, DEMO_STRIDE); if (Status != XST_SUCCESS) { xil_printf("Display Ctrl initialization failed during demo initialization%d\r\n", Status); return; } Status = DisplayStart(&dispCtrl); if (Status != XST_SUCCESS) { xil_printf("Couldn't start display during demo initialization%d\r\n", Status); return; } DemoPrintTest(dispCtrl.framePtr[dispCtrl.curFrame], dispCtrl.vMode.width, dispCtrl.vMode.height, dispCtrl.stride, DEMO_PATTERN_1); return; }
int main(void) { int hash[HASH_DIMENSION][HASH_DIMENSION]; int playerRound, x; int line, column; ALLEGRO_DISPLAY *display; ALLEGRO_EVENT_QUEUE *eventQueue; for(line = 0; line < HASH_DIMENSION; line++) for(column = 0; column < HASH_DIMENSION; column++) hash[line][column] = -1; if (!AllegroStart()) return -1; if (!ImageStart()) return -1; if (!MouseStart()) return -1; if (!DisplayStart(&display)) return -1; if (!EventQueueStart(&eventQueue)) return -1; al_register_event_source(eventQueue, al_get_display_event_source(display)); al_register_event_source(eventQueue, al_get_mouse_event_source()); al_set_target_bitmap(al_get_backbuffer(display)); playerRound = rand() % 2; RenderHash(hash); while ( !GameOver(hash) ) { if ( playerRound == COMPUTER )playerRound = PlayComputer(hash); else playerRound = PlayPlayer(hash, &eventQueue, &display); RenderHash(hash); } if (IsWinner(hash, COMPUTER)) al_show_native_message_box(display,"Computador Venceu", "", "Computador Venceu", "Ok",1); else if (IsWinner(hash, PLAYER)) al_show_native_message_box(display,"Você Venceu", "", "Você Venceu", "Ok",1); else al_show_native_message_box(display,"Deu Velha", "", "Deu Velha", "Ok",1); return 0; }
int DisplayDemoInitialize(DisplayCtrl *dispPtr, u16 vdmaId, u32 dispCtrlAddr, int fHdmi, u32 *vframePtr[DISPLAY_NUM_FRAMES], u32 *pframePtr[DISPLAY_NUM_FRAMES]) { int Status; Status = DisplayInitialize(dispPtr, vdmaId, dispCtrlAddr, fHdmi, vframePtr, pframePtr, DISPLAYDEMO_STRIDE); if (Status != XST_SUCCESS) { xil_printf("Display Ctrl initialization failed during demo initialization%d\r\n", Status); return XST_FAILURE; } Status = DisplayStart(dispPtr); if (Status != XST_SUCCESS) { xil_printf("Couldn't start display during demo initialization%d\r\n", Status); return XST_FAILURE; } DisplayDemoPrintTest(dispPtr->vframePtr[dispPtr->curFrame], dispPtr->vMode.width, dispPtr->vMode.height, dispPtr->stride, DISPLAYDEMO_PATTERN_1); return XST_SUCCESS; }
int PongDisplayInitialize(DisplayCtrl *dispPtr, u16 vdmaId, u16 timerId, u32 dispCtrlAddr, int fHdmi, u32 *framePtr[DISPLAY_NUM_FRAMES]) { int Status; TimerInitialize(timerId); Status = DisplayInitialize(dispPtr, vdmaId, dispCtrlAddr, fHdmi, framePtr, DISPLAY_STRIDE); if (Status != XST_SUCCESS) { xil_printf("Display Ctrl initialization failed during demo initialization%d\r\n", Status); return XST_FAILURE; } Status = DisplayStart(dispPtr); if (Status != XST_SUCCESS) { xil_printf("Couldn't start display during demo initialization%d\r\n", Status); return XST_FAILURE; } return XST_SUCCESS; }
int WINAPI wWinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE /* hPrevInstance */, __in_z_opt LPWSTR lpCmdLine, __in int /*nCmdShow*/ ) { ::HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL, 0); HRESULT hr = S_OK; BOOL fComInitialized = FALSE; LPWSTR sczThemeFile = NULL; ATOM atom = 0; HWND hWnd = NULL; HANDLE hDisplayThread = NULL; HANDLE hLoadThread = NULL; BOOL fRet = FALSE; MSG msg = { }; hr = ::CoInitialize(NULL); ExitOnFailure(hr, "Failed to initialize COM."); fComInitialized = TRUE; hr = ProcessCommandLine(lpCmdLine, &sczThemeFile); ExitOnFailure(hr, "Failed to process command line."); hr = CreateTheme(hInstance, &vpTheme); ExitOnFailure(hr, "Failed to create theme."); hr = CreateMainWindowClass(hInstance, vpTheme, &atom); ExitOnFailure(hr, "Failed to create main window."); hWnd = ::CreateWindowExW(0, reinterpret_cast<LPCWSTR>(atom), vpTheme->sczCaption, vpTheme->dwStyle, CW_USEDEFAULT, CW_USEDEFAULT, vpTheme->nWidth, vpTheme->nHeight, HWND_DESKTOP, NULL, hInstance, NULL); ExitOnNullWithLastError(hWnd, hr, "Failed to create window."); if (!sczThemeFile) { // Prompt for a path to the theme file. OPENFILENAMEW ofn = { }; WCHAR wzFile[MAX_PATH] = { }; ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hWnd; ofn.lpstrFile = wzFile; ofn.nMaxFile = countof(wzFile); ofn.lpstrFilter = L"Theme Files\0*.thm\0XML Files\0*.xml\0All Files\0*.*\0"; ofn.nFilterIndex = 1; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; ofn.lpstrTitle = vpTheme->sczCaption; if (::GetOpenFileNameW(&ofn)) { hr = StrAllocString(&sczThemeFile, wzFile, 0); ExitOnFailure(hr, "Failed to copy opened file to theme file."); } else { ::MessageBoxW(hWnd, L"Must specify a path to theme file.", vpTheme->sczCaption, MB_OK | MB_ICONERROR); ExitFunction1(hr = E_INVALIDARG); } } hr = DisplayStart(hInstance, hWnd, &hDisplayThread, &vdwDisplayThreadId); ExitOnFailure(hr, "Failed to start display."); hr = LoadStart(sczThemeFile, hWnd, &hLoadThread); ExitOnFailure(hr, "Failed to start load."); // message pump while (0 != (fRet = ::GetMessageW(&msg, NULL, 0, 0))) { if (-1 == fRet) { hr = E_UNEXPECTED; ExitOnFailure(hr, "Unexpected return value from message pump."); } else if (!ThemeHandleKeyboardMessage(vpTheme, msg.hwnd, &msg)) { ::TranslateMessage(&msg); ::DispatchMessageW(&msg); } } LExit: if (::IsWindow(hWnd)) { ::DestroyWindow(hWnd); } if (hDisplayThread) { ::PostThreadMessageW(vdwDisplayThreadId, WM_QUIT, 0, 0); ::WaitForSingleObject(hDisplayThread, 10000); ::CloseHandle(hDisplayThread); } // TODO: come up with a good way to kill the load thread, probably need to switch // the ReadDirectoryW() to overlapped mode. ReleaseHandle(hLoadThread); if (atom && !::UnregisterClassW(reinterpret_cast<LPCWSTR>(atom), hInstance)) { DWORD er = ::GetLastError(); er = er; } ThemeFree(vpTheme); ThemeUninitialize(); // uninitialize COM if (fComInitialized) { ::CoUninitialize(); } ReleaseStr(sczThemeFile); return hr; }
void DisplayDemoChangeRes(DisplayCtrl *dispPtr, u32 uartAddr) { char userInput = 0; int fResSet = 0; int status; /* Flush UART FIFO */ while (XUartPs_IsReceiveData(uartAddr)) { XUartPs_ReadReg(uartAddr, XUARTPS_FIFO_OFFSET); } while (!fResSet) { DisplayDemoCRMenu(dispPtr); /* Wait for data on UART */ while (!XUartPs_IsReceiveData(uartAddr)) {} /* Store the first character in the UART recieve FIFO and echo it */ userInput = XUartPs_ReadReg(uartAddr, XUARTPS_FIFO_OFFSET); xil_printf("%c", userInput); status = XST_SUCCESS; switch (userInput) { case '1': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_640x480); DisplayStart(dispPtr); fResSet = 1; break; case '2': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_800x600); DisplayStart(dispPtr); fResSet = 1; break; case '3': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_1280x720); DisplayStart(dispPtr); fResSet = 1; break; case '4': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_1280x1024); DisplayStart(dispPtr); fResSet = 1; break; case '5': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_1920x1080); DisplayStart(dispPtr); fResSet = 1; break; case 'q': fResSet = 1; break; default : xil_printf("\n\rInvalid Selection"); TimerDelay(500000); } if (status == XST_DMA_ERROR) { xil_printf("\n\rWARNING: AXI VDMA Error detected and cleared\n\r"); } } }
void DisplayDemoChangeRes(DisplayCtrl *dispPtr) { char userInput = 0; int fResSet = 0; int status; while (!fResSet) { DisplayDemoCRMenu(dispPtr); /* Store the first character in the UART recieve FIFO and echo it */ userInput = getchar(); xil_printf("%c", userInput); status = XST_SUCCESS; switch (userInput) { case '1': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_640x480); DisplayStart(dispPtr); fResSet = 1; break; case '2': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_800x600); DisplayStart(dispPtr); fResSet = 1; break; case '3': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_1280x720); DisplayStart(dispPtr); fResSet = 1; break; case '4': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_1280x1024); DisplayStart(dispPtr); fResSet = 1; break; case '5': status = DisplayStop(dispPtr); DisplaySetMode(dispPtr, &VMODE_1920x1080); DisplayStart(dispPtr); fResSet = 1; break; case 'q': fResSet = 1; break; default : xil_printf("\n\rInvalid Selection"); { struct timespec ts; ts.tv_sec = 0; ts.tv_nsec = 500000000; nanosleep( &ts, NULL ); } } if (status == XST_DMA_ERROR) { xil_printf("\n\rWARNING: AXI VDMA Error detected and cleared\n\r"); } } }
void DemoInitialize() { int Status; XAxiVdma_Config *vdmaConfig; int i; /* * Initialize an array of pointers to the 3 frame buffers */ for (i = 0; i < DISPLAY_NUM_FRAMES; i++) { pFrames[i] = frameBuf[i]; } /* * Initialize VDMA driver */ vdmaConfig = XAxiVdma_LookupConfig(VGA_VDMA_ID); if (!vdmaConfig) { xil_printf("No video DMA found for ID %d\r\n", VGA_VDMA_ID); return; } Status = XAxiVdma_CfgInitialize(&vdma, vdmaConfig, vdmaConfig->BaseAddress); if (Status != XST_SUCCESS) { xil_printf("VDMA Configuration Initialization failed %d\r\n", Status); return; } /* * Initialize the Display controller and start it */ Status = DisplayInitialize(&dispCtrl, &vdma, DISP_VTC_ID, DYNCLK_BASEADDR, pFrames, DEMO_STRIDE); if (Status != XST_SUCCESS) { xil_printf("Display Ctrl initialization failed during demo initialization%d\r\n", Status); return; } Status = DisplayStart(&dispCtrl); if (Status != XST_SUCCESS) { xil_printf("Couldn't start display during demo initialization%d\r\n", Status); return; } /* * Initialize the Interrupt controller and start it. */ Status = fnInitInterruptController(&intc); if(Status != XST_SUCCESS) { xil_printf("Error initializing interrupts"); return; } fnEnableInterrupts(&intc, &ivt[0], sizeof(ivt)/sizeof(ivt[0])); /* * Initialize the Video Capture device */ Status = VideoInitialize(&videoCapt, &intc, &vdma, VID_GPIO_ID, VID_VTC_ID, VID_VTC_IRPT_ID, pFrames, DEMO_STRIDE, DEMO_START_ON_DET); if (Status != XST_SUCCESS) { xil_printf("Video Ctrl initialization failed during demo initialization%d\r\n", Status); return; } /* * Set the Video Detect callback to trigger the menu to reset, displaying the new detected resolution */ VideoSetCallback(&videoCapt, DemoISR, &fRefresh); DemoPrintTest(dispCtrl.framePtr[dispCtrl.curFrame], dispCtrl.vMode.width, dispCtrl.vMode.height, dispCtrl.stride, DEMO_PATTERN_1); return; }
void DemoChangeRes() { int fResSet = 0; int status; char userInput = 0; /* Flush UART FIFO */ while (!XUartLite_IsReceiveEmpty(UART_BASEADDR)) { XUartLite_ReadReg(UART_BASEADDR, XUL_RX_FIFO_OFFSET); } while (!fResSet) { DemoCRMenu(); /* Wait for data on UART */ while (XUartLite_IsReceiveEmpty(UART_BASEADDR) && !fRefresh) {} /* Store the first character in the UART recieve FIFO and echo it */ userInput = XUartLite_ReadReg(UART_BASEADDR, XUL_RX_FIFO_OFFSET); xil_printf("%c", userInput); status = XST_SUCCESS; switch (userInput) { case '1': status = DisplayStop(&dispCtrl); DisplaySetMode(&dispCtrl, &VMODE_640x480); DisplayStart(&dispCtrl); fResSet = 1; break; case '2': status = DisplayStop(&dispCtrl); DisplaySetMode(&dispCtrl, &VMODE_800x600); DisplayStart(&dispCtrl); fResSet = 1; break; case '3': status = DisplayStop(&dispCtrl); DisplaySetMode(&dispCtrl, &VMODE_1280x720); DisplayStart(&dispCtrl); fResSet = 1; break; case '4': status = DisplayStop(&dispCtrl); DisplaySetMode(&dispCtrl, &VMODE_1280x1024); DisplayStart(&dispCtrl); fResSet = 1; break; case '5': status = DisplayStop(&dispCtrl); DisplaySetMode(&dispCtrl, &VMODE_1920x1080); DisplayStart(&dispCtrl); fResSet = 1; break; case 'q': fResSet = 1; break; default : xil_printf("\n\rInvalid Selection"); MB_Sleep(50); } if (status == XST_DMA_ERROR) { xil_printf("\n\rWARNING: AXI VDMA Error detected and cleared\n\r"); } } }