void main(void) //using 0 { EA = 0; PLLCON&=PLLCON_VAL;//настройка частоты процессора RestoreCalibrate(); RestoreSettings(); // ChannelsInit();//инициализация настроек каналов Protocol_Init(); Timer1_Initialize(); //таймер шедулера 200Гц ADC_Initialize(); UART_Init(); WDT_Init(WDT_2000);//включить сторожевой таймер PT_INIT(&pt_sort); startMenu(); EA=1; while(1) { ulongsort_process(&pt_sort); DisplayProcess(&pt_display); WDT_Process(&pt_wdt); KeyboardProcess(&pt_keyboard); } }
LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; static bool s_in_sizemove = false; static bool s_in_suspend = false; static bool s_minimized = false; auto game = reinterpret_cast<Game*>(GetWindowLongPtr(window, GWLP_USERDATA)); // process messages accordingly switch (message) { case WM_PAINT: hdc = BeginPaint(window, &ps); EndPaint(window, &ps); break; case WM_SIZE: if (wParam == SIZE_MINIMIZED) { if (!s_minimized) { s_minimized = true; if (!s_in_suspend && game) game->OnSuspending(); s_in_suspend = true; } } else if (s_minimized) { s_minimized = false; if (s_in_suspend && game) game->OnResuming(); s_in_suspend = false; } else if (!s_in_sizemove && game) { game->OnWindowSizeChanged(LOWORD(lParam), HIWORD(lParam)); } break; case WM_ENTERSIZEMOVE: s_in_sizemove = true; break; case WM_EXITSIZEMOVE: s_in_sizemove = false; if (game) { GetClientRect(window, &rc); game->OnWindowSizeChanged(rc.right - rc.left, rc.bottom - rc.top); } break; case WM_GETMINMAXINFO: { auto info = reinterpret_cast<MINMAXINFO*>(lParam); info->ptMinTrackSize.x = 1920; info->ptMinTrackSize.y = 1080; } break; case WM_ACTIVATEAPP: if (game) { if (wParam) { game->OnActivated(); game->MouseProcess(message, wParam, lParam); game->KeyboardProcess(message, wParam, lParam); } else { game->OnDeactivated(); } } break; case WM_POWERBROADCAST: switch (wParam) { case PBT_APMQUERYSUSPEND: if (!s_in_suspend && game) game->OnSuspending(); s_in_suspend = true; return true; case PBT_APMRESUMESUSPEND: if (!s_minimized) { if (s_in_suspend && game) game->OnResuming(); s_in_suspend = false; } return true; } break; case WM_DESTROY: PostQuitMessage(0); break; case WM_INPUT: case WM_MOUSEMOVE: case WM_LBUTTONDOWN: case WM_LBUTTONUP: case WM_RBUTTONDOWN: case WM_RBUTTONUP: case WM_MBUTTONDOWN: case WM_MBUTTONUP: case WM_MOUSEWHEEL: case WM_XBUTTONDOWN: case WM_XBUTTONUP: case WM_MOUSEHOVER: game->MouseProcess(message, wParam, lParam); break; case WM_KEYDOWN: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_SYSKEYUP: game->KeyboardProcess(message, wParam, lParam); break; case WM_CHAR: game->CharactersInput(wParam); break; } return DefWindowProc(window, message, wParam, lParam); }