DS1307 [RESOLU]

pouic13:
il n'accepte pas "->" c'est ma syntaxe qui est mauvaise?

Cours de pointeurs C rapide :
-> pour accéder au champ d'une structure depuis un pointeur.
. pour accéder au champ d'une structure depuis une variable classique.
Dans ton cas "date" est une variable classique dans le scope de loop() donc tu doit utiliser .

ok ok j’étais pas prés de trouver je chercher carrément de l'autre coté...

Par contre le sketch ce compile :smiley:
Mais ça ne bouge pas :~

J'ai une valeur fixe qui ne s’incrémente pas...
je crois que je vais arrêter là pour aujourd’hui hui merci beaucoup pour ton aide sky.
Demain je regarderais de plus prés mais je commence à douté fortement sur mes composants.
Pourtant tout est neuf pour une foie.

Bon... sur ce merci! :smiley: je reviendrais avec plein de question demain hihihi...

Re

Bon toujours pas d'amélioration...

Par contre des questions ça oui XD

Aussi bien dans le tuto de skywodd que de jean-françois vous convertissez les décimales en 8 bit.
Mais sur le datasheet le ds1307 n'en présente que 7 ? Pourquoi?

Quelque chose me reste bien en travers, j'ai quand même essayer plusieurs code dont des librairies toute faites et pourtant rien ne le fait bouger.

Lorsque je lis les valeur de ma structure je me retrouve avec 80 0 0 1 1 1 0.

Cela ressemble grandement au lien que j'ai mis au début de mon article a savoir celui-ci:
http://www.edaboard.eu/mon-ds1307-ne-demarre-pas-t376631.html
Mais aussi bien le code de skywodd que de jean-françois prenne en compte ce bit qui faut mettre à zéro si je dis pas de bêtise?

Reste-t-il quelque chose à testé niveau code?

Il y a une autre librairie : Google Code Archive - Long-term storage for Google Code Project Hosting.

XD déjà fait merci quand même b@tto

Je me rappelle plus exactement de tout les détails concernant mon code :sweat_smile:
Mais concernant l'oscillateur du DS1307 je l'active âpres chaque écriture d'une nouvelle heure dans mon code.

Au plus je cherche et au plus je me dis qui à un souci au niveau du montage.
C'est pas du tout normale qu'avec tous les codes que j'ai essayer y n'en est pas un qui arrive à le faire tourné.

Peut être que le ds13107 que j'utilise à fait un mauvais voyage en venant jusqu’à moi qui sait?

En tout cas je pense pouvoir écarter la thèse d'un code mal codé...(je pense surtout à des variables non adaptées ou des petites bêtises dans ce genre) ou même une erreur de câblage.

J'attend la semaine prochaine je dois allé chercher une commande j'essaierai avec un autre.

J'arrête là pour l'instant ça sert à rien de s'acharner je suis entrain de me dégoûter plus qu'autre chose.

Merci à tous pour votre aide et votre patience.

Je reviendrai gnack gnack gnack... :stuck_out_tongue:

pouic13:
Au plus je cherche et au plus je me dis qui à un souci au niveau du montage.
...
Je reviendrai gnack gnack gnack... :stuck_out_tongue:

bonsoir
Repart de ton cablage et repose le schema sur papier (inversion du processus normal :grin: )
Un DS1307 cuit cuit :grin: , ça peut effectivement arriver, mais c'est numériquement assez rare
les QZ "horloger" sont quelquefois susceptibles si ils sont trop chauffé lors des soudures.

[HUM]
attention , les DS1307 ne fonctionnent bien que conditionné dans des boites de fromages :grin:

Lol oui j'ai vu ça pour les boites a fromage.
Elles n'ont pas l'aire de trop aimer les berres trop gras aussi XD

T'as mis le bon quartz au moins ? xD

heu... le quartz... :cold_sweat: ...quel quartz?? :stuck_out_tongue:

J'ai même essayer avec un autre que j'avais de coté pas de changement :~

Je dirais juste une chose: "le DS1307! c'est tabou ont en viendras tous à bout! ...%#!(un mot commençant par "salo" et qui finit par "perie" :smiley: "

Pour vérifier si l'oscillateur fonctionne correctement, il suffit d'activer la sortie SQW/OUT en programmant la sortie du 1Hz comme ça tu peux le visualiser avec une simple LED (+ une résistance)

il suffit d'activer la sortie SQW/OUT en programmant la sortie du 1Hz

Esque tu peux préciser? ou un exemple?

ben la pin SQW/OU fournit un signal à 1Hz, donc une fois par seconde...
donc une led en série avec une résistance sur cette même pin, et tu
devrais voir clignoter la led à la fréquence d'une fois par seconde...

Merci je croyais avoir mal compris mais malheureusement non.

Je viens d'essayer la led reste allumé.

pouic13:
heu... le quartz... :cold_sweat: ...quel quartz?? :stuck_out_tongue:

On est bien d'accord : tu as un quartz de 32.768KHz (quartz de montre) sur les broches X1/X2 ?
Parce que sinon, sans quartz c'est un peu normal que rien ne bouge :wink:

Sinon j'ai trouvé un lien sympa :

On est bien d'accord : tu as un quartz de 32.768KHz (quartz de montre) sur les broches X1/X2 ?
Parce que sinon, sans quartz c'est un peu normal que rien ne bouge smiley-wink

Lol oui de ce coté la j'ai bien un 32.768Khz et non pas un 32...Mhz et il est bien sur les deux premier pin de la chip.

J'ai vue plusieurs topic ou il parlait d'utilisé la ram du ds1307 je pense que celui que j'ai peut me servir à ça. Je peut écrire deçus mais l'oscillation ne marche pas donc bon c'est à essayer.
(Merci pour le lien je le garde sous le coude :slight_smile: )

Encore faut il que je dompte là bête!(Au vue des lacunes que j'ai avec le bus i2C...) ]:smiley:

pouic13:

On est bien d'accord : tu as un quartz de 32.768KHz (quartz de montre) sur les broches X1/X2 ?
Parce que sinon, sans quartz c'est un peu normal que rien ne bouge smiley-wink

Lol oui de ce coté la j'ai bien un 32.768Khz et non pas un 32...Mhz et il est bien sur les deux premier pin de la chip.

J'ai vue plusieurs topic ou il parlait d'utilisé la ram du ds1307 je pense que celui que j'ai peut me servir à ça. Je peut écrire deçus mais l'oscillation ne marche pas donc bon c'est à essayer.
(Merci pour le lien je le garde sous le coude :slight_smile: )

Encore faut il que je dompte là bête!(Au vue des lacunes que j'ai avec le bus i2C...) ]:smiley:

si tu arrive a ecrire et relire la RAM ce n'est donc pas un probleme d'I2C ni tres surement de DS1307,
reverifie les soudures quartz

juste pour que l'on soit bien d'accord
le Ds1307 necessite 2 phases
une phase de mise à l'heure et démarrage de l'oscillateur
une phase ensuite de lecture
tu procede comment pour les 2 etapes ?

pouic13:
Merci je croyais avoir mal compris mais malheureusement non.

Je viens d'essayer la led reste allumé.

As-tu bien activé la sortie SQW/OUT écrivant 0x10 dans le registre à l'adresse 07? Si c'est bon elle doit être allumée 500mS et éteinte 500mS.
Si tu as un oscillo, tu peux écrire 0x13 dans ce même registre et normalement tu devrais voir le 32kHz.

Si tu relis le registre à l'adresse 0, le bit de poids fort est-il bien à zéro (arrêt de l'oscillateur si le bit est à un)

Peut tu envoyer l'état réel des registres du DS1307.
Pour cela point n'est besoin d'utiliser une bibliothèque particulière autre que Wire :

void lit_ds1307()
{
	uint8_t octet_lu[7];
	uint8_t i ;

	//Lecture des registres
	
	//Positionnement sur l'octet à lire en premier:
		Wire.beginTransmission(0x68);
		Wire.write(0x00);
		Wire.endTransmission(0x68);
	//Lecture de 8 octets a partir de la position précédemment indiquée
		Wire.requestFrom(0x68, 8) ;
		for (i=0 ; i<=7 ; i++)
		{
			octet_lu[i] = Wire.read();
		}
	// Affichage	
		for (i=0 ; i<=7 ; i++)
		{
			Serial.print("Registre n: ")	;	Serial.print(i);
			Serial.print("  ")	;	Serial.println(octet_lu[i], BIN)	;
		}
}

C'est ce que je me suis fait la première fois que j'ai utilisé une DS1307 histoire de savoir où je mettais les pieds.

Nota : les 56 autres registres "utilisateurs" peuvent aussi être lus de la même façon.

Edit : pour vérifier la sortie SQWE c'est possible de le faire au voltmètre.
Avec 1 Hz tu devrais voir un affichage alterner entre d'une part 4et 5 V et d'autre part 0 et 2 volts (vérifié fonctionne avec mon voltmètre).
Avec une fréquence plus élevée je n'ai pas essayé mais le voltmètre devrait intégrer et afficher pas loin de 2,5 V