Autor Tema: Programa para puerto serial AYUDA  (Leído 1280 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado booshis

  • PIC10
  • *
  • Mensajes: 2
Programa para puerto serial AYUDA
« en: 28 de Abril de 2005, 19:13:00 »
Hola soy nuevo en este foro y la verdad me gusto mucho pero queria saber si alguien porfavor sabe de un programa executable en cualquier lenguaje ya sea c, c#, cualquier lenguaje menos visual basic que pueda leer la informacion atraves del puerto serial y la ponga en un archivo o algo parecido.


muchas gracias

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: Programa para puerto serial AYUDA
« Respuesta #1 en: 29 de Abril de 2005, 19:00:00 »
Buenas.

Tengo un par de programas que te podrían interesar. El primero se llama "paralelo.c" y captura datos del puerto paralelo y los guarda en un fichero llamado "muestreo.txt".

Codigo:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>

int puerto,anterior;
long array[10000];
long i,n;
FILE *fichero;

void main()
{
   n=10;
   clrscr();
   printf("Pulsa una tecla para empezar."Giño;
   getch();
   printf("

Leyendo %d datos....",n);
   for(i=0;i<n;i++)
   {
      puerto=inportb(0x379);
      if(puerto!=anterior)
         {
         array=puerto;
         anterior=puerto;
         }
      else
         i--;
   }
   fichero=fopen("muestreo.txt","wt"Giño;
   for(i=0;i<n;i++)
   {
      fprintf(fichero,"Codigo %d:",i);
      switch(array)
      {
      case 0x3f: fprintf(fichero,"   11
"Giño;break;
      case 0x37: fprintf(fichero,"   10
"Giño;break;
      case 0x27: fprintf(fichero,"   00
"Giño;break;
      case 0x2f: fprintf(fichero,"   01
"Giño;break;
      }
   }
   fclose(fichero);
}


El segundo configura el puerto serie a 9600 baudios 8N1 y envía datos por el, en primer lugar tomados del teclado y (comentado) tomados de un fichero.

Codigo:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>

unsigned p;
unsigned char caracter;
long n,i,j,m;

FILE *fichero;

void inicia();
void retraso();

void main()
{
   n=100000;
   m=0x40;
   p=0x3f8;
   inicia();
   clrscr();
   outportb(p,0x02);
   retraso();
//   fichero=fopen("Linea1.txt","rt"Giño;
   for(j=0;j<m;j++){
   caracter=getch();
   if((j&0x1F)==0x10) outportb(p,0x01), printf("
"Giño;
   if((j&0x1F)==0x00) outportb(p,0x02), printf("
"Giño;
   retraso();
   printf("%c",caracter);
   outportb(p,caracter);
   retraso();


   }

/*   printf("Pulsa una tecla para empezar."Giño;
   getch();
   printf("

Transfiriendo datos del archivo...."Giño;
   printf("
Pulsa continuadamente una tecla para enviar cada caracter al LCD"Giño;
   retraso();
   outportb(p,0x02);
   while((feof(fichero))==0)
   {
      caracter=fgetc(fichero);
      retraso();
      outportb(p,caracter);

   }
   fclose(fichero);
   retraso();
   outportb(p,0x01);
   fichero=fopen("Linea2.txt","rt"Giño;
   while((feof(fichero))==0)
   {
      caracter=fgetc(fichero);
      retraso();
      outportb(p,caracter);

   }
   fclose(fichero);
   printf("

Transferencia realizada.
Pulsa una tecla para finalizar"Giño;
   retraso();
   fclose(fichero);      */
}

void   inicia()
{
  outportb(p+3,0x80);       /* Activa el bit DLAB de la velocidad. */
  outportb(p,0x0C);         /* Código correspondiente a la    */
  outportb(p+1,0x00);        /* velocidad de 96000 bps. en DLL  y  DLM    */
  outportb(p+3,0x03);       /* desactiva el bit DLAB y        */
             /* configura el puerto.        */
}

void   retraso()
{
for(i=0;i<n;i++)
   n=n;
}


A ver si haciendo una mezcla de ambos puedes hacer lo que quieres.