Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour,
Parfait venom ! C'est cool que tu ai résolu ton probléme. effectivement sans simulateur cela aurait été dur de trouver la solution .
Je suis quand même dubitatif sur la fonction de BAT1 branché sur Sout ? si tu l’enlève ça devrait fonctionner encore non ?
N'hésite pas à revenir pour toute question !
A+
PS: je suis content car mon tuto à servi ! Comme quoi mes efforts ne sont pas vain !
Parfait venom ! C'est cool que tu ai résolu ton probléme. effectivement sans simulateur cela aurait été dur de trouver la solution .
Je suis quand même dubitatif sur la fonction de BAT1 branché sur Sout ? si tu l’enlève ça devrait fonctionner encore non ?
N'hésite pas à revenir pour toute question !
A+
PS: je suis content car mon tuto à servi ! Comme quoi mes efforts ne sont pas vain !
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
Moi j'ai ms la batterie car j'ai lue sur le net qu'une batterie doit être brancher sur un ds1307 pour mémorisé l'heure et la date en cas de coupure de courant ???
Mais tu a raison je me suis tromper la batterie se branche sur le Vbat et non le Sout erreur de ma part
Screen modifier dans le précédent post
Oui merci du tuto. Un tuto n'est jamais inutile la preuve.
À la base je souhaiterais créer une horloge binaire. Mais je ne sais pas si c'est mieux ou pas de la gérer via un RTC ? Vous en pensez quoi ???
@++
Mais tu a raison je me suis tromper la batterie se branche sur le Vbat et non le Sout erreur de ma part
Screen modifier dans le précédent post
Oui merci du tuto. Un tuto n'est jamais inutile la preuve.
À la base je souhaiterais créer une horloge binaire. Mais je ne sais pas si c'est mieux ou pas de la gérer via un RTC ? Vous en pensez quoi ???
@++
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
La RTC compte le temps en BCD, si tu souhaites un affichage en binaire, il faut convertir.
L'avantage de la RTC avec pile, c'est que tu ne perds pas l'heure en cas de coupure d'alim.
Perso, j'utilise la DS3231, el le con tient le quartz et une compensation de température mais pas de RAM comme la DS1307.
DS3231
L'avantage de la RTC avec pile, c'est que tu ne perds pas l'heure en cas de coupure d'alim.
Perso, j'utilise la DS3231, el le con tient le quartz et une compensation de température mais pas de RAM comme la DS1307.
DS3231
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
Gérard a écrit :La RTC compte le temps en BCD, si tu souhaites un affichage en binaire, il faut convertir.
C'est vrai.
Après je ne suis pas encore assez bon programmeur pour savoir si c'est compliquer ou pas, mais je pensais que sa pourrait simplifié les choses
Gérard a écrit :L'avantage de la RTC avec pile, c'est que tu ne perds pas l'heure en cas de coupure d'alim.
Sa aussi, ça peut être une fonction sympa a ajouté a une horloge. Donc reste a voir niveau programmation.
@++
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Mais tu a raison je me suis tromper la batterie se branche sur le Vbat et non le Sout erreur de ma part
Ouf tu me rassure à vrai dire.
Après je ne suis pas encore assez bon programmeur pour savoir si c'est compliquer ou pas, mais je pensais que sa pourrait simplifié les choses
Nous sommes la pour aider . Pas de problème si tu souhaites passer de la simulation, au fer à souder
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
Jérémy a écrit :Nous sommes la pour aider . Pas de problème si tu souhaites passer de la simulation, au fer à souder
J'en prend note. Merci
@++
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
Bonsoir a tous,
Je continue mon apprentissage du ds1307 pour mon horloge binaire. Bon vous vous doutez bien, je bloque sur quelque chose.
dans cette fonction que j'ai trouver sur le forum :
qui d’après moi permet de récupérer le temps du ds1307 ? ai-je bon ?
Si oui est-ce que par exemple secondes renvoie bien le chiffre des secondes du ds1307 ?
Ou a t'il une fonction dans mikroc qui permettrait de me renvoyé de résultat ?
D'avance merci.
@++
Je continue mon apprentissage du ds1307 pour mon horloge binaire. Bon vous vous doutez bien, je bloque sur quelque chose.
dans cette fonction que j'ai trouver sur le forum :
Code : Tout sélectionner
void Lecture_GDH(){
I2C1_Start(); // Début de l'I²C
I2C1_Wr(RTC_ADDR); // Adresse du RTC ( 0xD0 cf datasheet)
I2C1_Wr(0); // lecture à cette adresse ( N° registre)
I2C1_Repeated_Start(); // On répète le signal de départ
I2C1_Wr(RTC_ADDR+1); // Adresse du DS1307 (1=lire / 0=ecrire)
secondes = I2C1_Rd(1); // Lecture et enregistrement de la valeur
secondes = Bcd2Dec(secondes); // Conversion de BCD en décimal pour l'afficheur
minutes = I2C1_Rd(1);
minutes = Bcd2Dec(minutes);
heures = I2C1_Rd(1);
heures = Bcd2Dec(heures);
I2C1_Stop(); // Arrêt de l'I²C
}
qui d’après moi permet de récupérer le temps du ds1307 ? ai-je bon ?
Si oui est-ce que par exemple secondes renvoie bien le chiffre des secondes du ds1307 ?
Ou a t'il une fonction dans mikroc qui permettrait de me renvoyé de résultat ?
D'avance merci.
@++
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour venom,
Tu as su effectivement lire la fonction .Mais pour être plus précis, elle ne renvoie pas de valeurs, mais enregistre les secondes lues, dans une variables appelée "secondes".
Nom MikroC te permet de lire la DS1307, c'est ensuite a toi de la traitée ( affichage stockage, modification ...) .
Ici on lit les secondes par liaison I²C en allant lire la DS1307 , et cette lue est directement enregistrer pour un traitement ultérieur.
N'hésite pas, si ce n'est pas clair
Tu as su effectivement lire la fonction .Mais pour être plus précis, elle ne renvoie pas de valeurs, mais enregistre les secondes lues, dans une variables appelée "secondes".
Nom MikroC te permet de lire la DS1307, c'est ensuite a toi de la traitée ( affichage stockage, modification ...) .
Ici on lit les secondes par liaison I²C en allant lire la DS1307 , et cette lue est directement enregistrer pour un traitement ultérieur.
N'hésite pas, si ce n'est pas clair
[resolu] DS1307 (RTC) + LCD + PIC 16F877 A
Bonjour
Nous avons ici une fonction void Lecture_GDH() qui ne renvoi rien (void) et qui n'a aucun paramètre ()vide
Par contre cette fonction contient plusieurs fonctions (5 pour la gestion de I2c) et (6 que l'on répète )pour la conversion lecture ic2 en BCD )
alors OUI la fonction "secondes = I2C1_Rd(1);" renvoi bien la lecture du registre seconde du DS1307, dans la variable secondes il serait, peut-être judicieux d'optimiser cette fonction (utilisation de pointeur).
mais c'est une autre histoire
A+
venom a écrit :Code : Tout sélectionner
void Lecture_GDH(){
I2C1_Start(); // Début de l'I²C
I2C1_Wr(RTC_ADDR); // Adresse du RTC ( 0xD0 cf datasheet)
I2C1_Wr(0); // lecture à cette adresse ( N° registre)
I2C1_Repeated_Start(); // On répète le signal de départ
I2C1_Wr(RTC_ADDR+1); // Adresse du DS1307 (1=lire / 0=ecrire)
secondes = I2C1_Rd(1); // Lecture et enregistrement de la valeur
secondes = Bcd2Dec(secondes); // Conversion de BCD en décimal pour l'afficheur
minutes = I2C1_Rd(1);
minutes = Bcd2Dec(minutes);
heures = I2C1_Rd(1);
heures = Bcd2Dec(heures);
I2C1_Stop(); // Arrêt de l'I²C
}
Nous avons ici une fonction void Lecture_GDH() qui ne renvoi rien (void) et qui n'a aucun paramètre ()vide
Par contre cette fonction contient plusieurs fonctions (5 pour la gestion de I2c) et (6 que l'on répète )pour la conversion lecture ic2 en BCD )
alors OUI la fonction "secondes = I2C1_Rd(1);" renvoi bien la lecture du registre seconde du DS1307, dans la variable secondes il serait, peut-être judicieux d'optimiser cette fonction (utilisation de pointeur).
mais c'est une autre histoire
A+
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 42 invités