begin process at 2012 05 29 02:42:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Périphériques

 > 

Dialogué avec un GBF avec une interface RS 232 en gertion RTS/CTS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dialogué avec un GBF avec une interface RS 232 en gertion RTS/CTS

vendredi 17 mars 2006 à 10:20:34 | Dialogué avec un GBF avec une interface RS 232 en gertion RTS/CTS

Etudiant13666

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 en me donnant des codes sources ou des liens pour les utilisés ?

mon programme :

#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 .


Cette discussion est classée dans : ordre, com1, mov, al, dx


Répondre à ce message

Sujets en rapport avec ce message

programmation graphique 800*600 [ par ptitchep ] bonjourJ'aimerais utiliser les mdes VESA pour obtenir une résolution plus acceptable que le mode 13h. Je n'ai pas de problème pour définir le mode mai asm sous Dev-C++ [ par bolbtb ] Bonjour,J'ai trouvé çà sur cppfrance (à propos lire/écrire sur le port parallèle):ASM { mov dx,adr }sous Dev-Cpp je l'ai transformé en asm("mo C++ et asm [ par Chouchou182 ] BonjourVoilà un extrait : __asm{ mov ah, 00h mov al, 13h int 10h }Aucun bug a la compilationAcess violation Ordre de déclaration des variables ... [ par icedreamer ] Salut.Je continue mon petit prog et les pb suivent aussi ..Il semble que l'ordre de déclaration de mes variables joue un role dans le focntionnement d petit pb de pointer [ par mirlaine ] en fait c tou simpleje cherche l 'équivalen à ca: LPCWSTR user LPBYTE *bufptr mov eax, [bufptr] mov eax, [eax] //LPUSER_INFO_0 mov eax, [e Ordre du Linker sous VisualC++ [ par Checker_Bobby ] Bonjour,j'ai fait un programme tout bien sous Unix en C++ et jme suis dit, tiens je vais le tester sous VisualC++... la boulette...plus serieusement, VC++ fait chier [ par GoldenEye ] Qui peut me dire comment on place le curseur où on veut et ce sans Borland ( conio.h et gotoxy aux chiottes donc ) sous DOS et avec VC++ 6.0 ( ça fait int 21h [ par GEDEON ] Salut, j'aurais besoin d'aide pour appeler une interruption assembleur sousVisual C++......Tout mon code fonctionne sauf la ligne "int 21h"... Là j'ai Recherche de programmeurs DX [ par Msgbox ] Pour un projet d'RPG(Le meilleur du monde bien sur lol), on recrute des programmeurs qui savent bien se servir de DirectX. C'est un tres grand projet, OpenGL vs DirectX : Qui est le meilleur ? [ par dominiquox ] Je sais que la question à été posée 36 548.2598 fois mais, on trouve de tout dans les reponses (D'ailleurs, une fois j'ai vu un sujet qui comparait Op


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales