ASDA-B2-F Communications
September, 2015
8-13
8
Example of CRC Program:
Calculate CRC value in C language. This function needs two parameters:
unsigned char* data;
unsigned char length
The function returns the CRC value as a type of unsigned integer.
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 ) { /*LSB(bit 0 ) = 1 */
reg_crc = (reg_crc >> 1)^0xA001;
} else {
reg_crc = (reg_crc>>1);
}
}
}
return reg_crc;
}
Example of PC communication program:
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<process.h>
#define PORT 0x03F8
/* the address of COM 1 */
#define THR 0x0000
#define RDR 0x0000
#define BRDL 0x0000
#define IER 0x0001
#define BRDH 0x0001
#define LCR 0x0003
#define MCR 0x0004
#define LSR 0x0005
#define MSR 0x0006
unsigned char rdat[60];
/* read 2 data from address 0200H of ASD with address 1 */
unsigned char tdat[60]={‘:’,’0’,’1’,’0’,’3’,’0’,’2’,’0’,’0’,’0’,’0’,’0’,’2’,’F’,’8’,’\r’,’\n’};
void main() {
int I;
outportb(PORT+MCR,0x08);
/* interrupt enable */
outportb(PORT+IER,0x01);
/* interrupt as data in */
outportb(PORT+LCR,( inportb(PORT+LCR) | 0x80 ) );
/* the BRDL/BRDH can be access as LCR.b7 == 1 */
outportb(PORT+BRDL,12);
outportb(PORT+BRDH,0x00);
outportb(PORT+LCR,0x06);
/* set prorocol
<7,E,1>
=
1AH,
<7,O,1>
=
0AH
<8,N,2>
=
07H
<8,E,1>
=
1BH
<8,O,1> = 0BH
*/
for( I = 0; I<=16; I++ ) {
while( !(inportb(PORT+LSR) & 0x20) );
/* wait until THR empty */
outportb(PORT+THR,tdat[I]);
/* send data to THR */
}
I = 0;
while( !kbhit() ) {
if( inportb(PORT+LSR)&0x01 ) { /* b0==1, read data ready */
rdat[I++] = inportb(PORT+RDR); /* read data from RDR */
}
Summary of Contents for ASD-B2-0121-F
Page 3: ...September 2015 This page is intentionally left blank...
Page 9: ...VI September 2015 This page is intentionally left blank...
Page 29: ...Installation ASDA B2 F 2 12 September 2015 2 This page is intentionally left blank...
Page 185: ...Parameters ASDA B2 F 7 68 September 2015 7 This page is intentionally left blank...
Page 199: ...Communications ASDA B2 F 8 14 September 2015 8...
Page 201: ...Communications ASDA B2 F 8 16 September 2015 8 This page is intentionally left blank...
Page 217: ...Troubleshooting ASDA B2 F 9 16 September 2015 9 This page is intentionally left blank...
Page 239: ...Absolute System ASDA B2 F 10 22 September 2015 10 This page is intentionally left blank...