Dialogué avec un gbf avec une interface rs 232 en gestion rts/cts

Dialogué avec un gbf avec une interface rs 232 en gestion rts/cts - C - Programmation

Marsh Posté le 18-03-2006 à 17:43:16    

Bonjour à tous j'aimerais amélioré un programme que j'ai fait pour communité avec mon GBF mais j'ai du mal a comprendre les ouvertures de port com en c  :??: .
 
Pourrirez-vous m'aider please  :jap: en me donnant des codes sources ou des liens pour les utilisés ?
 
mon programme  :pt1cable: :
 
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
#include<fcntl.h>
#include<io.h>
#include<errno.h>
#include<conio.h>
 
#define COM1 0x3f8
#define IER COM1+1
#define LCR COM1+3
#define BSRM COM1+1
#define BSRL COM1
#define RBR COM1
#define THR COM1
#define LSR COM1+5
#define MCR COM1+4
#define MSR COM1+6
#define SCR COM1+7
 
void init_UART(void);
void ecriture (void);
 
void main()
{
    init_UART();
    ecriture();
 
}
void init_UART()
{
    asm{
    mov al,0xff // DLAB a 1
    mov dx,LCR
    out dx,al
 
    mov al,0x30 // BSRL a 2400(d)
    mov dx,BSRL
    out dx,al
 
    mov al,0x00
    mov dx,BSRM
    out dx,al
 
    mov al,0x03 // Reglage LCR parité 8bits, aucune parité, 1 stop
    mov dx,LCR
    out dx,al
 
    mov al,0x00 // IER a 0 (pour windabe)
    mov dx,IER
    out dx,al
 
    mov dx,RBR
    in al,dx // Lecture pour "rien"
 
    }
}
void ecriture (void)
{
    char ordre,check,chck=1;
    while(chck)
          {
          printf("a marche pas: %c\n",chck);
        asm{
            mov dx,THR
            in al,dx
            mov chck,al
        }
          }
    while(ordre != 'q' && ordre != 'Q')
    {
        do  // Buffer overflow?
        {
              asm{
                mov dx,LSR
                in al,dx
                mov check,al
              }
             check = check & 0x40;
 
        } while(check != 64);    
           ordre=getchar();
         if(ordre == "@" )
             ordre=0x40;
         if(ordre == "A" )
             ordre=0x41;
         if(ordre == "B" )
             ordre=0x42;
         if(ordre == "C" )
             ordre=0x43;
         if(ordre == "D" )
             ordre=0x44;
         if(ordre == "E" )
             ordre=0x45;
         if(ordre == "F" )
             ordre=0x46;
         if(ordre == "G" )
             ordre=0x47;
         if(ordre == "H" )
             ordre=0x48;
         if(ordre == "I" )
             ordre=0x49;
         if(ordre == "J" )
             ordre=0x4A;
         if(ordre == "K" )
             ordre=0x4B;
         if(ordre == "L" )
             ordre=0x4C;
         if(ordre == "M" )
             ordre=0x4D;
         if(ordre == "N" )
             ordre=0x4E;
         if(ordre == "O" )
             ordre=0x4F;
        asm{
            mov al,ordre
            mov dx,COM1
            out dx,al
        }
        sleep(1);
    }
}
 
 
Merci d'avance si je me suis mal expliquer sur ce que je souhaites nésiter pas à me poser des questions  :) .

Reply

Marsh Posté le 18-03-2006 à 17:43:16   

Reply

Marsh Posté le 21-03-2006 à 12:09:09    

Eh le GBF c'est bien le truc qui fait des signaux alternatifs?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed