}
// Посылаем подтверждение приема(MRcmd!=CMD_GET_REG && MRcmd!=CMD_READ_SENS)
{(HEADER_BYTE);(MRfrom);(MY_ADDR);(CMD_ACK);
putchar(0);
}
// Ждем, пока не освободится буфер вывода
while(tx_counter0);_us(DELAY_TIME);485CTL = U485READ;
}
3. Листинг демонстрационной программы
/*
Автор: Иванов Н.В.
Версия 1.02
Дата создания: 31.08.2011
Дата последней модификации: 16.12.2011
*/
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <stdarg.h>
#include <conio.h>
#include <windows.h>
#include <vcl.h>
#include "popular.h"
#include "rs232lib.h"
#include "hxpdlib.h"
#pragma hdrstop
#pragma argsused*Title = "\nSimple XPod Ctl 1.02\n";PortName = "COMX";ComPortSpeed = 57600; // Скорость*IniFile = "hxctl.ini";*MacroFile = "hxctl.mdf";
//-----------------------------------------------------TUsrComPort::Open()
// Разбираемся с COM-портом
{res;= new TComPort(PortName, BaudRate, res);
Ready = (Port!=NULL && res!=0);(!Ready)("\nUnable to open '%s' at %d",PortName, BaudRate);("OK");
}ReadSensors(void)
{BYTE cn = 0;
#define ATTR_INFO 0xF1cnimg[] = {'-', '|', '/', '-', '\\', '*'};
#define OFFS 4
#define SharpRight OFFS+0
#define SharpLeft OFFS+1_LEN = 0;(ExecCommand("readsensors")!=E_OK)("*** Exec command 'readsensors' error\n");(RDPACKAGE_LEN<=0)("Read sensors error");sx, sy;= wherex();= wherey();(1,1);(ATTR_INFO);();(int i=0;i<8;i++)("%3d ", (int)RDPACKAGE[OFFS+i]);(" %c", cnimg[++cn % (sizeof(cnimg))]);(sx,sy);
}ExShowCommand(char *s)
{("%s \r",s);
}ExPrintf(char *s)
{
printf("%s",s);
}
//----------------------------------------------------------
// Основная программа
//----------------------------------------------------------
void main(void)
{s;("\n%s\n",Title);
//--------------------------------------------------------
// Чтение файла конфигурации
//--------------------------------------------------------
FILE *f;
if((f=fopen(IniFile,"r"))==NULL)("Open inifile '%s' error",IniFile);
// Чтение файла конфигурации(!SkipRemarkLine(f, PortName))("Read PortName error");(!SkipRemarkLine(f, s))("Read ComPort speed error");= atoi(s);(f);(MacroFile);("\nTry init port '%s' at %d . ",PortName, ComPortSpeed);= new TUsrComPort(PortName,ComPortSpeed);>Open();("\n\n");
//--------------------------------------------------------
// Основной цикл
//--------------------------------------------------------eoj = 0;(!eoj)
{(10);();
#define DIST 50
//-----------------------------------------------------(RDPACKAGE[SharpLeft]<=DIST && RDPACKAGE[SharpRight]<=DIST)
{("StepFwd\n");("StepFwd");
}if(RDPACKAGE[SharpLeft]>=DIST && RDPACKAGE[SharpRight]>=DIST)
{("StepBack\n");("StepBack");
}if(RDPACKAGE[SharpLeft]>=DIST)
{("StepRight\n");("StepRight");
}if(RDPACKAGE[SharpRight]>=DIST)
{("StepLeft\n");("StepLeft");
}
//-----------------------------------------------------c;(kbhit())
Самое читаемое:
Автомат включения вентилятора
Выпуск бытовой радиоэлектронной аппаратуры в
нашей стране увеличивается. С каждым годом расширяется её ассортимент,
совершенствуется технология производства на основе использования операционных
усилителях, интегральных микросхем и микросборок, новейших достижений
микроэлектроники и микропроцессорных средств обслуживание и обеспечени ...