AD2817 Manual de usuario
int m,n;
while( check_stat(PORT) & 256 ) read_port( PORT );/* lee datos hasta llegar al nulo */
for( m = 1000;m;m-- ) /* protocolo de comunicación: espera hasta que esté listo*/
{ send_port( PORT,0xaa );
for( n = 100;n;n-- )
{
delay( 2 ); /* esperar alrededor de 2ms */
if( kbhit() && ( getch() == 27 ) ) /* si se pulsa la tecla escape */
{ printf( "\nE20:Escritura en el puerto serie cancelada!" );
exit(1);
}
if( check_stat(PORT) & 256 )
{ c = read_port( PORT );
break;
}
}
if( n ) break;/*AD2817 no está listo para recibir */
}
if( c != 0xcc )/* comprueba recepción */
{ printf( "\nE10: Fallo en el protocolo de comunicación!" );
exit(1);
}
/* protocolo de comunicación correcto, comienza e enviar la cadena de caracteres */
for( ;*ps; )
{
send_port( PORT,*ps++ );
delay(2);
}
send_port( PORT,'\n' );
delay(2);
}
/* lee una cadena de caracteres desde el puerto serie */
void string_rd( char *ps )
{
unsigned char c,i;
for( i = 0;i < 255;i++ )
{
while( ! (check_stat(PORT) & 256) ) /* espera a recibir la señal de listo */
if( kbhit() && (getch() == 27) ) /* si se pulsa la tecla escape */
{ printf( "\nE21:Lectura del puerto serie cancelada!" );
exit(1);
/* lectura máx. 256 caracteres */
45