Programmer un DS1307 avec un 18f6627 - Page 4
Répondre à la discussion
Page 4 sur 4 PremièrePremière 4
Affichage des résultats 91 à 102 sur 102

Programmer un DS1307 avec un 18f6627



  1. #91
    invitec1cd705e

    Re : Programmer un DS1307 avec un 18f6627


    ------

    -utilise la balise CODE, ca sera plus lisible.

    -Apparemment, toutes tes fonctions du genre "BCD2LowerCh(minute);" te renvoie un nombre compris entre 0 et 9 (à confirmer). Pour afficher ce nombre, il faut envoyer son code ASCII et pas sa valeur, c'est pour ca que ca t'affiche rien, et qu'on a crée la fonction sprintf.

    edit : dans tes fonctions de convertion, le fait de faire un " +'0' " te converti ton nombre en ASCII, mais ca reste de la bidouille, le sprintf est préférable

    -----

  2. #92
    invite489d7312

    Re : Programmer un DS1307 avec un 18f6627

    Citation Envoyé par antoine6 Voir le message
    -utilise la balise CODE, ca sera plus lisible.

    -Apparemment, toutes tes fonctions du genre "BCD2LowerCh(minute);" te renvoie un nombre compris entre 0 et 9 (à confirmer). Pour afficher ce nombre, il faut envoyer son code ASCII et pas sa valeur, c'est pour ca que ca t'affiche rien, et qu'on a crée la fonction sprintf.

    edit : dans tes fonctions de convertion, le fait de faire un " +'0' " te converti ton nombre en ASCII, mais ca reste de la bidouille, le sprintf est préférable
    j'ai du mal à te comprendre, je suis un idiot. Je vais chercher un autre programme je vais te montrer.

  3. #93
    invite489d7312

    Re : Programmer un DS1307 avec un 18f6627

    void rtc_read(unsigned char *rtc_buffer)

    SEN = 1; // 1) send start bit START
    while(SEN); // and wait for it to clear
    ACKDT = 0; // acknowledge bit

    SSPIF = 0; //
    SSPBUF = 0xd0; // set device address 0xd0 // write SLAVE ADDRESS
    while(!SSPIF); // wait for interrupt
    SSPIF = 0; // then clear it.

    SSPBUF = 0; // 2) write to address 0 = register 0, WORD ADDRESS - control 1
    while(!SSPIF); // wait for interrupt
    SSPIF = 0; // then clear it.

    RSEN = 1; // 3) send repeated start bit REPEATED START
    while(RSEN); // and wait for it to clear

    SSPIF = 0;
    SSPBUF = 0xd1; // set device address - write WORD ADDRESS - CONTROL 2
    while(!SSPIF); // wait for interrupt
    SSPIF = 0; // then clear it.

    RCEN = 1; // 4) start receiving READ & ACK buffer 0
    while(!STAT_BF); // wait for data
    rtc_buffer[0] = SSPBUF; // and get it // buffer 0
    ACKEN = 1; // start acknowledge sequence
    while(ACKEN); // wait for ack. sequence to end

    // 5)

    RCEN = 1; // 6) start receiving READ LAST & NO ACK buffer 7
    while(!STAT_BF); // wait for data
    rtc_buffer[7] = SSPBUF; // and get it // buffer 7
    ACKDT = 1; // not acknowledge for last byte

    PEN = 1; // send stop bit STOP
    while(PEN);

    voilà j'ai trouvé la routine et ensuite ?

  4. #94
    invitec1cd705e

    Re : Programmer un DS1307 avec un 18f6627

    Citation Envoyé par nasserarien Voir le message
    voilà j'ai trouvé la routine et ensuite ?
    La première routine avait l'air mieux (il manque des parenthèses et des définitions sur la seconde), le seul truc c'est que c'est beaucoup plus pratique de passer par un sprintf, plutôt que remplir la chaine de caractères chiffres par chiffres

    Par exemple, pour afficher i = 2:

    Code:
    int i = 2;
    char buffer[10];
    
    sprintf(buffer, "i = %d", i);
    Lcd_Out(1,1,buffer);

  5. #95
    invite489d7312

    Re : Programmer un DS1307 avec un 18f6627

    Citation Envoyé par antoine6 Voir le message
    La première routine avait l'air mieux (il manque des parenthèses et des définitions sur la seconde), le seul truc c'est que c'est beaucoup plus pratique de passer par un sprintf, plutôt que remplir la chaine de caractères chiffres par chiffres

    Par exemple, pour afficher i = 2:

    Code:
    int i = 2;
    char buffer[10];
    
    sprintf(buffer, "i = %d", i);
    Lcd_Out(1,1,buffer);
    J'ai pris ta 1ère routine et ça ne marchait pas
    je vais te dire les erreurs

  6. #96
    invite489d7312

    Re : Programmer un DS1307 avec un 18f6627

    J'utilise mplab et j'ai une syntaxe error ici:
    int get_time(heure, minute);

  7. #97
    invitec1cd705e

    Re : Programmer un DS1307 avec un 18f6627

    Quand je parlait de la première routine, je parlait de celle postée en #90 (on est déja à 6 pages sur ce post...)

    Utilise cette base, mais enleve tous tes time[0] = ... et mets y un sprintf.

    Avant, essaye d'afficher un i=2 avec les 4 lignes que je t'ai donné au dessus

  8. #98
    invite489d7312

    Re : Programmer un DS1307 avec un 18f6627

    et je mets quoi comme balise sur mon compilateur ?

  9. #99
    invitec1cd705e

    Re : Programmer un DS1307 avec un 18f6627

    Citation Envoyé par nasserarien Voir le message
    et je mets quoi comme balise sur mon compilateur ?
    De quelle balise tu parle?

  10. #100
    invite489d7312

    Re : Programmer un DS1307 avec un 18f6627

    Citation Envoyé par antoine6 Voir le message
    De quelle balise tu parle?
    des includes

    ex: #include <xlcd.h>

  11. #101
    invitec1cd705e

    Re : Programmer un DS1307 avec un 18f6627

    Tu mets ceux que tu utilise depuis le début, xlcd, stdio.h, ...

  12. #102
    invite489d7312

    Re : Programmer un DS1307 avec un 18f6627

    Salut les mecs, vous savez ce qu'on va faire, on va tout refaire depuis le début pour être bien claire.

    Mon objectif est d'afficher l'heure et la date sur un écran LCD.

    Voici le shéma:


    Après plusieurs recherches dans ce forum, je tombe sur ça:
    http://forums.futura-sciences.com/el...8f452-i2c.html

    je n'ai presque plus de temps, je voulais vous demander si je peux utiliser ce programme sur mon shéma ?

    Je sais que l'utilisation de 18f452 et 18f6627 est identique pour cet objectif.

    Merci. Mon prof m'a installé mplab, notre compilateur, sur mon pc portable et demain il m'installera proteus.

Page 4 sur 4 PremièrePremière 4

Discussions similaires

  1. Carte PIC meteo avec ds1307
    Par invite47dfc8ff dans le forum Électronique
    Réponses: 8
    Dernier message: 13/03/2010, 12h20
  2. programmer avec LOGO
    Par invited7efb2ee dans le forum Électronique
    Réponses: 1
    Dernier message: 05/06/2009, 08h15
  3. Programmer une horloge a temps réel( ds1307 ) avec un P18f452 par I2C
    Par invite70c217d4 dans le forum Électronique
    Réponses: 2
    Dernier message: 08/04/2009, 20h39
  4. rôle d'une LED avec l'horloge DS1307
    Par inviteb5437249 dans le forum Électronique
    Réponses: 5
    Dernier message: 05/03/2007, 09h52
  5. Problème avec RTC DS1307 [picbasic pro]
    Par inviteb65e81be dans le forum Électronique
    Réponses: 4
    Dernier message: 05/04/2006, 09h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...