• WINCE 定时器0控制LED上位机源码


      /******************************************************
      *作    者:温子祺
      *联系方式:wenziqi@hotmail.com
      *创建事件:2010-09-06
      *说    明: 定时器闪烁LED上位机源码
      ******************************************************/

     

    转载请注明出处,谢谢!

    1 // TIMERDlg.cpp : 实现文件
    2  //
    3  
    4 #include "stdafx.h"
    5 #include "TIMER.h"
    6 #include "TIMERDlg.h"
    7
    8 #ifdef _DEBUG
    9  #define new DEBUG_NEW
    10  #endif
    11
    12  #define IOCTL_START_TIMER 1
    13 #define IOCTL_STOP_TIMER 2
    14
    15 // CTIMERDlg 对话框
    16
    17 CTIMERDlg::CTIMERDlg(CWnd* pParent /*=NULL*/)
    18 : CDialog(CTIMERDlg::IDD, pParent)
    19 {
    20 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    21
    22 m_hTimer=INVALID_HANDLE_VALUE;
    23 }
    24
    25 void CTIMERDlg::DoDataExchange(CDataExchange* pDX)
    26 {
    27 CDialog::DoDataExchange(pDX);
    28 }
    29
    30 BEGIN_MESSAGE_MAP(CTIMERDlg, CDialog)
    31 #if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
    32 ON_WM_SIZE()
    33 #endif
    34 //}}AFX_MSG_MAP
    35 ON_BN_CLICKED(IDC_BUTTON1, &CTIMERDlg::OnBnClickedStartTimer)
    36 ON_BN_CLICKED(IDC_BUTTON2, &CTIMERDlg::OnBnClickedStopTimer)
    37 ON_BN_CLICKED(IDC_BUTTON3, &CTIMERDlg::OnBnClickedOpenTimer)
    38 ON_BN_CLICKED(IDC_BUTTON4, &CTIMERDlg::OnBnClickedCloseTimer)
    39 END_MESSAGE_MAP()
    40
    41
    42 // CTIMERDlg 消息处理程序
    43
    44 BOOL CTIMERDlg::OnInitDialog()
    45 {
    46 CDialog::OnInitDialog();
    47
    48 // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    49 // 执行此操作
    50 SetIcon(m_hIcon, TRUE); // 设置大图标
    51 SetIcon(m_hIcon, FALSE); // 设置小图标
    52
    53 // TODO: 在此添加额外的初始化代码
    54
    55
    56
    57 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    58 }
    59
    60 #if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
    61 void CTIMERDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
    62 {
    63 if (AfxIsDRAEnabled())
    64 {
    65 DRA::RelayoutDialog(
    66 AfxGetResourceHandle(),
    67 this->m_hWnd,
    68 DRA::GetDisplayMode() != DRA::Portrait ?
    69 MAKEINTRESOURCE(IDD_TIMER_DIALOG_WIDE) :
    70 MAKEINTRESOURCE(IDD_TIMER_DIALOG));
    71 }
    72 }
    73 #endif
    74
    75
    76 void CTIMERDlg::OnBnClickedStartTimer()
    77 {
    78 if (m_hTimer==INVALID_HANDLE_VALUE)
    79 {
    80 MessageBox(L"ERROR: m_hTimer is invalid!");
    81
    82 return ;
    83 }
    84
    85 ::DeviceIoControl(m_hTimer,IOCTL_START_TIMER,NULL,0,NULL,0,NULL,NULL);
    86 }
    87
    88 void CTIMERDlg::OnBnClickedStopTimer()
    89 {
    90 if (m_hTimer==INVALID_HANDLE_VALUE)
    91 {
    92 MessageBox(L"ERROR: m_hTimer is invalid!");
    93
    94 return ;
    95 }
    96
    97 ::DeviceIoControl(m_hTimer,IOCTL_STOP_TIMER,NULL,0,NULL,0,NULL,NULL);
    98 }
    99
    100 void CTIMERDlg::OnBnClickedOpenTimer()
    101 {
    102 m_hTimer=CreateFile(_T("TMR1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
    103
    104 if (m_hTimer==INVALID_HANDLE_VALUE)
    105 {
    106 MessageBox(L"ERROR:Create file for m_hTimer fail!");
    107 }
    108 }
    109
    110 void CTIMERDlg::OnBnClickedCloseTimer()
    111 {
    112 if (m_hTimer)
    113 {
    114 CloseHandle(m_hTimer);
    115
    116 m_hTimer=INVALID_HANDLE_VALUE;
    117
    118 }
    119 else
    120 {
    121 MessageBox(L"ERROR: m_hTimer is invalid!");
    122 }
    123 }
    124
  • 相关阅读:
    软件工程课程总结
    c++第五次作业
    软件工程第四次作业
    c++第四次作业
    软件工程第三次作业
    c++第三次作业
    软件工程基础第二次作业
    c++第二次作业
    c++第一次作业
    软件工程基础第一次作业
  • 原文地址:https://www.cnblogs.com/wenziqi/p/1823406.html
Copyright © 2020-2023  润新知