|
~: stepper motor control panel program in VC++ :~
void CStepDlg::OnInc() { // TODO: Add your control notification handler code here UpdateData(TRUE); x++; if(t==0) { switch(x) { case 1: _outp(0x0378,0x10); break; case 2: _outp(0x0378,0x08); break; case 3: _outp(0x0378,0x04); break; case 4: _outp(0x0378,0x02); break; case 5: _outp(0x0378,0x01); break; default: MessageBox("Over/under Speed"); } } else { switch(x) { case 1: _outp(0x0378,0x30); break; case 2: _outp(0x0378,0x28); break; case 3: _outp(0x0378,0x24); break; case 4: _outp(0x0378,0x22); break; case 5: _outp(0x0378,0x21); break; default: MessageBox("Over/under Speed"); } } if(m_c == 30) { x=0; MessageBox("Max Speed"); } else { m_c+=5; m_scnt.Format("%d",m_c); } UpdateData(FALSE); }
void CStepDlg::OnDec()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
x--;
if(t==0)
{
switch(x)
{
case 1:
_outp(0x0378,0x10);
break;
case 2:
_outp(0x0378,0x08);
break;
case 3:
_outp(0x0378,0x04);
break;
case 4:
_outp(0x0378,0x02);
break;
case 5:
_outp(0x0378,0x01);
break;
default: MessageBox("Over/under Speed");
}
}
else
{
switch(x)
{
case 1:
_outp(0x0378,0x30);
break;
case 2:
_outp(0x0378,0x28);
break;
case 3:
_outp(0x0378,0x24);
break;
case 4:
_outp(0x0378,0x22);
break;
case 5:
_outp(0x0378,0x21);
break;
default: MessageBox("Over/under Speed");
}
}
if(m_c == 10)
{
x=1;
MessageBox("Min Speed");
}
else
{
m_c-=5;
m_scnt.Format("%d",m_c);
}
UpdateData(FALSE);
}
void CStepDlg::OnStr()
{
// TODO: Add your control notification handler code here
SetTimer(IDC_CLK_TMR,1000,NULL);
}
void CStepDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
int a =0;
UpdateData(TRUE);
if(c == m_itime)
{
c=0;a++;
if((a%2)==0)
{
switch(x)
{
case 1:
_outp(0x0378,0x10);
break;
case 2:
_outp(0x0378,0x08);
break;
case 3:
_outp(0x0378,0x04);
break;
case 4:
_outp(0x0378,0x02);
break;
case 5:
_outp(0x0378,0x01);
break;
}
}
else
{
switch(x)
{
case 1:
_outp(0x0378,0x10);
break;
case 2:
_outp(0x0378,0x08);
break;
case 3:
_outp(0x0378,0x04);
break;
case 4:
_outp(0x0378,0x02);
break;
case 5:
_outp(0x0378,0x01);
break;
}
}
}
else c++;
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
}
void CStepDlg::OnStop()
{
// TODO: Add your control notification handler code here
KillTimer(IDC_CLK_TMR);
c = 0;
}
void CStepDlg::OnClk()
{
// TODO: Add your control notification handler code here
t=0;
}
void CStepDlg::OnAclk()
{
// TODO: Add your control notification handler code here
t=1;
}
void CStepDlg::OnStrt()
{
// TODO: Add your control notification handler code here
if(t==0)
{
_outp(0x0378,0x10);
Sleep(2000);
_outp(0x0378,0x08);
Sleep(2000);
_outp(0x0378,0x04);
Sleep(2000);
_outp(0x0378,0x02);
Sleep(2000);
_outp(0x0378,0x01);
//MessageBox("motor is running in clockwise direction");
}
else { //MessageBox("motor is running in anticlockwise direction"); _outp(0x0378,0x30); Sleep(2000); _outp(0x0378,0x28); Sleep(2000); _outp(0x0378,0x24); Sleep(2000); _outp(0x0378,0x22); Sleep(2000); _outp(0x0378,0x21); } }
void CStepDlg::OnStp() { // TODO: Add your control notification handler code here _outp(0x0378,0x00); } |