Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350845
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:02:24

小弟想用BCB6.0..PRINTER 8255卡和STP5步进马达控制器..控制两个六线马达..但是BCB程式跑到一半出现一个错误..小弟不知道是不是OBJ档案问题..但是有在资料夹内..恳请大大帮忙..谢谢..以下是程式码和错误..还有再请教一个问题..因为小弟有参考一本书的内容..在第六航位什么还要在定义PPI_PA...位什么不能括号里面输入位址就好呢??小弟因初学什么都不懂..还请高手指教
小弟作业系统是xp.听人说XP下不能用outportb()..那要如何修改呢??若要另外下载控件应如何使用.需要再修改内容吗??
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
#include "ioport.hpp"                   //载入 ioport.hpp
#define PPI_PA 0x10          
#define PPI_CW 0x13                
int i=0;
char step[4]={0x0c,0x09,0x03,0x06};  //步进马达两相激磁信号
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{
  outportb( PPI_CW, 0x80 );      
    outportb( PPI_PA, 0x0f );   //经 A 埠送出可令线圈消磁的信号 0FH
 Timer1->Enabled = false;            }
//---------------------------------------------------------------------------
void __fastcall TForm1::StartClick(TObject *Sender)
{
  Timer1->Enabled = true;             //启动计时器
    Timer1->Interval = 500;             //设定延迟时间为 500ms = 0.5 秒
    Start->Enabled = false;    //禁能开始钮
 End->Enabled = false;    //禁能结束钮
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StopClick(TObject *Sender)
{
 Start->Enabled = true;    //致能开始钮
    End->Enabled = true;    //致能结束钮
    Timer1->Enabled = false;            //令计时器无法启动
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EndClick(TObject *Sender)
{
 outportb( PPI_PA, 0x0f );   //经 A 埠送出可令线圈消磁的信号 0FH
    Close();       //关闭程式
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  outportb(PPI_PA,step[i]);   //经由 A 埠送出可令步进马达正转的激磁信号
    i++;                                //i = i+1 指向下一激磁信号
    if (i > 3)                          //若为最后一个激磁信号, 则
    {
     i = 0;                          //令 i = 0 指向第一个激磁信号
    }
}
//---------------------------------------------------------------------------



错误:
[Linker Error] Unresolved external '__fastcall Ioport::outportb(int, unsigned char)' referenced from C:\DOCUMENTS AND SETTINGS\1\桌面\新资料夹 (4)\UNIT1.OBJ


--------------------next---------------------

阅读(1194) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~