Bonsoir à vous alors voilà j'ai un problème pour utiliser un DS1307 depuis un pic 16f876A via la library fournie sur MikroC.
Donc pour commencer je veux juste récupérer l'heure et les minutes mais j'ai déjà quelques difficulté, voici ma fonction actuelle qui évidemment ne fonctionne pas :
Notez que pour l'heure pour l'instant j'ai mis 0x31 et 0x31 car je me concentre sur les minutes et qu'en haut du programme dans la fonction main j'ai mis I2C1_Init(100000);.Code:void afficher_heure(char ligne, char colonne){ I2C1_Start(); I2C1_Wr(0xD1); while(!I2C1_Is_Idle()); I2C1_Wr(0x01); while(!I2C1_Is_Idle()); acquisition = I2C1_Rd(0); // Read the data (NO acknowledge) //acquisition = 0x30; I2C1_Stop(); // issue I2C stop signal acquisition = Bcd2Dec(acquisition); // + 0x30 sert à convertir le chiffre en ASCII pour l'afficher sur l'afficheur LCD plus tard. 0 en ASCII = 0x30, 1 = 0x31 ... 9 = 0x39. dizaine = (((acquisition % 100) - ((acquisition % 100)%10))/10)+0x30; // Récupération du nombre de dizaines. unite = ((acquisition % 100)%10)+0x30; // Récupération du nombre d'unitées. Lcd_Chr(ligne,colonne,0x31); Lcd_Chr(ligne,colonne + 1,0x31); Lcd_Out(ligne,colonne + 2,"h"); Lcd_Chr(ligne,colonne + 3,dizaine); Lcd_Chr(ligne,colonne + 4,unite); }
J'ai essayé diverse méthode et pour l'instant le mieux que j'ai réussi à faire c'est de ne pas faire planter le pic (j'ai aussi vu ce topic http://forums.futura-sciences.com/el...lgorithme.html mais je ne comprends pas trop pourquoi HULK28 propose d'initialiser toutes les valeurs dès le début, encore le registre 0x00 pour activer l'horloge d'accord mais le reste ... ) et je vous mets mon schéma en pièce jointe ainsi vous pourrez vérifier que j'ai bien câblée mais je pense que c'est bon de ce côté là.
Merci d'avance à vous.
-----