#include "7188e.h"
//#include <conio.h>
//#include <stdlib.h>
//#include <stdio.h>
const int PORT = 2;
const unsigned long BAND = 9600;
const int DATA = 8;
const int PARITY = 1;
const int STOP = 1;
unsigned int crc_chk(unsigned char* data, unsigned char length)
{
int j;
unsigned int reg_crc = 0xFFFF;
while (length--)
{
reg_crc ^= *data++;
for (j=0; j<8; j++)
{
if (reg_crc & 0x01)
{
reg_crc = (reg_crc >> 1) ^ 0xA001;
}
else
{
reg_crc = reg_crc >> 1;
}
}
}
return reg_crc;
}
void set_crc(unsigned char* A, int len)
{
unsigned int crc;
crc = crc_chk(A,len-2);
A[len-2] = crc;
A[len-1] = (crc>>8)&0xFF;
Print("\n\rcrc: %i\n\r", crc);
}
void main()
{
Print("Started\n\r");
if (InstallCom(PORT, BAND, DATA, PARITY, STOP) != NoError)
{
Print("Error init\n\r");
return;
}
unsigned char A[8]={0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char B[20];
int err;
/* 10 Hz */
A[1] = 0x06;
A[2] = 0x20;
A[3] = 0x01;
A[4] = 0x03;
A[5] = 0xE8;
set_crc(A,8);
err = ToComBufn(PORT, A, 8);
if (err != 8 )
{
Print("Error write to port (change): %i\n\r", err);
return;
}
DelayMs(500);
/* start */
A[1] = 0x06;
A[2] = 0x20;
A[3] = 0x00;
A[4] = 0x00;
A[5] = 0x12;
set_crc(A,8);
err = ToComBufn(PORT, A, 8);
if (err != 8 )
{
Print("Error write to port (start): %i\n\r", err);
return;
}
while (1)
{
DelayMs(200);
A[1] = 0x08;
A[2] = 0x00;
A[3] = 0x00;
A[4] = 0x17;
A[5] = 0x70;
set_crc(A,8);
err = ToComBufn(PORT, A, 8);
if (err != 8)
{
Print("Error write to port (stop): %i\n\r", err);
return;
}
}
DelayMs(300);
/* stop */
A[1] = 0x06;
A[2] = 0x20;
A[3] = 0x00;
A[4] = 0x00;
A[5] = 0x01;
set_crc(A,8);
err = ToComBufn(PORT, A, 8);
if (err != 8)
{
Print("Error write to port (stop): %i\n\r", err);
return;
}
Print("\n\rStopped\n\r");
}