IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Communication Pic/UART <=> modem


Sujet :

C

  1. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Par défaut
    en faite cela ne marchait qu'a moitier, en effet le modem arrivait bien a numéroter mais je ne resevait aucune trame PPP....

    Pour y arrivé j'ai ajouter les comande at suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    putsUART("at&D0&K0&R0");

    Avec ceci je resoit correctement la trame PPP, maintenant la prochaine etape est de r'envoyer la trame PPP pour etablir la connection....

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Par défaut
    eeee finalement j'ai encore un autre probleme....

    precedement je voulais envoyer un caratere via UART pour communiqué avec un modem cela est chose faite et sa marche tres bien.

    desormais je numérote pour me connecter a free, apres numérotation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ATM0.at&D0&K0&R0.
    ...OK..ATE0...OK....OK...
    .OK..
    ATDT0860922000.}
    ..CONNECT 45333 V42bis..
    ~ÿ}#À!}!`} }8}"}&} }*} } }  ///////////// debut de la trame PPP envoyer par free  
    #}$À#}%}&˜ò}0/}'}"}(}"}4Ÿ
     ~~ÿ}#À!}!a} }8}"}&} }*} }
    ............
    je voudrais, une fois connecté, envoyer mes trame de configuration PPP. pour cela je detect le caractère 'C' de CONNECT, une fois détecte je lance la procédure de configuration. le code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BOOL do_dial(void)    ///// permet de configurer le modem et permet la numérotation
    {
    static BYTE VERIF_UART=0;
    int j;
     
    	DelayMs(33);
            putstrUART("ATZ\r");	
            putstrUART("ATM0\r");
            putstrUART("at&D0&K0&R0\r");
            putstrUART("ATDT0860922000\r"); 			  
    }
    dans le main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    int main(void)
     
    static BYTE VERIF_UART=0;
    ...
    ...
    while(1)
        {
    		VERIF_UART=ReadUART();
    		if (VERIF_UART == 'C')	putstrUART("COUCOUCOUCOUCOUCOUCOCU");   // je veux juste envoyer sela pour le test, ensuite se sera l'appel de fonction
     
            if ( TickGetDiff(TickGet(), t) >= TICK_SECOND*1)
            {
    			t = TickGet();
    			LED0_IO ^= 1;            // Blink system LED
    //			asctime(&tm_time, &BUFF[0],7);
    //			putstrUART(BUFF);
     
     
    #if defined(USE_LCD)
                UpdateLCD();	
    #endif
            }

    mon probleme c que le caratère 'C' de CONNECT ne semble jamais etre détecté et donc le COUCOUCOU n'est jamais envoyé...

    je pensais que cela sufirais mais apparement non, si QQ1 aune idée?


    sinon j'ai ce programme en exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #define DIALSTR         "ATDT 123\r"
    #define MODEM_TIMEOUT   (5*SECTICKS)
    #define DIAL_TIMEOUT    (60*SECTICKS)
     
    BOOL modem_connected;
     
    BYTE get_kbuff(WORD tout);
     
    /* Start up the phone dialling state machine */
    BOOL do_dial(void)
    {
        print_serial = TRUE;
        print_lcd = print_net = FALSE;
        SER_CTS_ = 0;
        if (!modem_connected)
        {
            USERLED1 = USERLEDON;
            flashled1 = 1;
            put_ser("ATE0\r");
            delay_ms(10);
            flush_serial();
            put_ser("AT&FE0\r");
            get_kbuff(MODEM_TIMEOUT);
            if (kbuff[0]=='O' && kbuff[1]=='K')
            {
                put_ser(DIALSTR);
                flush_serial();
                get_kbuff(DIAL_TIMEOUT);
                if (kbuff[0]=='C' && kbuff[1]=='O')
                    modem_connected = TRUE;
            }
            USERLED1 = USERLEDON;
            flashled1 = 0;
        }
        return(0);
    }
    mais je ne comprend pas car la fonction "get_kbuff" n'est defini nul part dans le projet....

  3. #23
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Par défaut
    bon cela marche,

    mon erreur est que je ne faisais qu'une seul verification de ce qui arrive sur l'UART,

    desormait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while(1)
        {
    		if(DataRdyUART())
    		{
    			//if(ReadUART()=='C')LED0_IO ^= 1;
    			if(ReadUART()=='~')
    				{
    ...
    ...
    ...
    }


    et sa merche mieux, je vais mettre "resolu" pour cette conversation, mais pi etre vais je revenir.

    ;-)

    merci pour vos conseil!!!!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Communication entre un PIC PB-3B de Comfile et un modem GenPlug 16e
    Par mglm88 dans le forum Autres architectures
    Réponses: 0
    Dernier message: 31/12/2013, 11h28
  2. Problème de communication PIC-PC via RS232
    Par jiji94 dans le forum C++
    Réponses: 0
    Dernier message: 04/04/2008, 20h26
  3. communication des données via modem+rtc en VB6
    Par kadirov dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/07/2006, 12h56
  4. [LG] Communication via modem
    Par tomsteak dans le forum Langage
    Réponses: 1
    Dernier message: 27/01/2006, 13h22
  5. Communication RS232 avec un PIC via delphi
    Par JeanPh dans le forum API, COM et SDKs
    Réponses: 22
    Dernier message: 09/08/2004, 23h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo