那位大侠帮忙分析一下C++源代码?

jwugang 2008-07-25 03:39:14
void CCycleTestDlg::OnTimer(UINT nIDEvent)
{
UINT nBit=m_nCounter/2;
if(nBit>=0 && nBit<4 && !m_bPQ46)//skip PQ46
{
nBit=4;
m_nCounter=nBit*2;
}
if(nBit>=4 && nBit<18 && !m_bCD34)//skip CD34
{
nBit=18;
m_nCounter=nBit*2;
}
if(nBit>=18 && nBit<19 && !m_bSGM811Meter)//skip SGM811 Meter
{
nBit=19;
m_nCounter=nBit*2;
}
if(nBit>=19 && nBit<22 && !m_bSGM811Clock)//skip SGM811 Clock
{
nBit=22;
m_nCounter=nBit*2;
}

if(nBit>=22)
{
m_nCounter=nBit=0;
m_nTested++;
m_nLeft--;
UpdateData(FALSE);
if(m_nLeft==0)
OnBnClickedButtonStop();
}

if(m_nCounter%2!=0)//odd means to pull the button back
ClearOutput();
else//even measn to push the button
OutputBit(nBit);

m_nCounter++;

CDialog::OnTimer(nIDEvent);
}

void CCycleTestDlg::OutputBit(UINT nBit)
{
UINT nOutput;
nOutput=((UINT)0x01)<<nBit;
DO_WritePort(m_nCard,PORT_DO_LOW,nOutput);
}

void CCycleTestDlg::ClearOutput()
{
DO_WritePort(m_nCard,PORT_DO_LOW,0x00);
}

主要是nBit的值怎么变化的,Noutput怎么变化的。谢谢了。
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
thistangyong2008 2008-07-26
  • 打赏
  • 举报
回复
看了头就大了。。。。
还是要用功哦 啊
scorpio_w 2008-07-26
  • 打赏
  • 举报
回复
OnTimer:计时器回调函数。
根据条件,前面几个IF不会执行,nBit从0到21,m_nCounter从0到44。
m_nCounter为奇数执行ClearOutput,为偶数执行OutputBit
如果我知道 2008-07-25
  • 打赏
  • 举报
回复
mark..
jwugang 2008-07-25
  • 打赏
  • 举报
回复
假设m_bPQ46,m_bCD34,m_bSGM811Meter,m_bSGM811Clock的值都为真。
wangzongqing 2008-07-25
  • 打赏
  • 举报
回复
m_bPQ46之类的变量的初值以及他们会如何变化也会影响啊
jwugang 2008-07-25
  • 打赏
  • 举报
回复
三楼的大哥:
nBit和Noutput的值怎么变化的,假设m_nCounter初值为0
机智的呆呆 2008-07-25
  • 打赏
  • 举报
回复
void CCycleTestDlg::OnTimer(UINT nIDEvent)
计时器的回调函数,触发计时器后,每隔一定时间就会回调这个函数。nBit根据m_nCounter赋初值,然后相应的变化,最后m_nCounter也变化,这么循环直到计时器被终止
jwugang 2008-07-25
  • 打赏
  • 举报
回复
滑有人来啊,,

自己先顶起来!!
wangdeqie 2008-07-25
  • 打赏
  • 举报
回复
这是VC的源代码啊,这么单独看咋分析啊

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧