j'ai un projet avec un pic16f877 ,un lcd 2*16 alphanumerique,un DS1307,un I2C
je veux un programme en micro c 6.2 pour récuperer date et heure et afficher sur lcd
merccccccccccccccccccccccccccc cccccccccccccci
-----
j'ai un projet avec un pic16f877 ,un lcd 2*16 alphanumerique,un DS1307,un I2C
je veux un programme en micro c 6.2 pour récuperer date et heure et afficher sur lcd
merccccccccccccccccccccccccccc cccccccccccccci
Discussion déplacée et titre modifié (on est pas fan des "au secours" )
Pour la modération.
Tu viens d'arriver et déjà on lit : "je veux", "je voudrais" serait plus indiqué !
Suggestion : si tu l'écrivais toi même ton programme ?
Bonjour Monde,
sympa ce projet ;O]
t'as essayé G..gle???
t'y trouveras sûrement des "pistes";O]
vede
;O]
désolé si ça vous dérange c'est la première fois que je participe dans ce genre de forum
j'ai essayé mais il y a plusieurs choses qui m'échappent .je programme avec le mikro c 6.2 ,mon programme contient des #include"config.h" et #include "RTC_DS1307.h" que le mikro c 6.2 ne veut pas les accepter
comment procéder svp
Laisse moi rire....
c'est pas Micro C mais MikroC!
Ensuite ici (le site officiel) ils en sont à la :
et pas la 6.2...(current build 3.20)
Et enfin, tu n'as pas ouvert l'aide...
car t'aurai tes réponses à:
Je suis d'accord avec Gérard...mon programme contient des #include"config.h" et #include "RTC_DS1307.h" que le mikro c 6.2 ne veut pas les accepter
BONSOIRdésolé si ça vous dérange c'est la première fois que je participe dans ce genre de forum
j'ai essayé mais il y a plusieurs choses qui m'échappent .je programme avec le mikro c 6.2 ,mon programme contient des #include"config.h" et #include "RTC_DS1307.h" que le mikro c 6.2 ne veut pas les accepter
comment procéder svp
moi ça me dérange pas ;O]
MERCI
(de t'inquiéter)
vede
;O]
ps : +1 pour Gerard ;O]
re-ps : comme écrit dans le post ci-dessus, un petit tour
dans l'aide et sur le forum MikroC paraît s'imposer ;O]
est ce que c'est votre manière d'aider les gens!!!!!!!!!!!!!!!!!!
en fait mon projet n'assure pas seulement la récupérationde la date et l'heure .principalemement c'est un détecteur d'incendie qui affiche sur lcd l'etage ou se trouve l'incendie ,déclenche une alarme et donne la date et l'heure
j'ai terminé tout ce qui concerne la localisation de l'incendie ,l'alarme il me reste la date et l'heure si vous voulez je peux vous montrer le schéma sur isis ainsi que le programme sur mikroc 6.2
Cela ne coute rien de nous le montrer et c'est une base de départ.
Que te manque t-il alors?
j'ai un programme qui n'est pas fonctionnel que sur mikroc 7.0.0.3
je voudrais l'avoir fonctionnel sur mikroc 6.2 car il y a des différences
et j'ai pas le mikroc v7.0.0.3
Je te rappelle que c'est toi le nouveau et que c'est toi qui veut de l'aide, alors un peu de modestie !!!!!!!!!!!!!!!!!!!!
Un peu de bonne volonté, de courtoisie et de savoir-vivre aide beaucoup ici.
Ton truc est tout le temps sous tension, tu n'as donc pas besoin de RTC avec pile.
Un Qz de 32, 768KHz sur les pin d'entrée de comptage de TMR1, tu places correctement les bons bit et ça marche.
Je l'ai fait !
Tu voudrais le code ?
Tu montres d'abord de la bonne volonté et tu publies ce que tu as déjà pondu, après on discutes.
Ca ne te plais pas, tant pis, c'est toi qui a le plus à perdre.
Regarde ici : http://www.mikroe.com/en/compilers/mikrobasic/pro/pic/
tu verras que ce que tu dis ci-dessus est faux.
MikroC est à la version 3.20 !
Elle vient d'où la 7.0.0.3 ?????? Et la 6.2 ?
merci pour votre aide!
En faisant une recherche trouvé ça:
http://www.mikroe.com/forum/viewtopi...c6bd2043b1f783
Je ne sais pas trop ce que c'est...
Poste ton bout de code.
+1 Gérard ;O]Je te rappelle que c'est toi le nouveau et que c'est toi qui veut de l'aide, alors un peu de modestie !!!!!!!!!!!!!!!!!!!!
Un peu de bonne volonté, de courtoisie et de savoir-vivre aide beaucoup ici.
Ton truc est tout le temps sous tension, tu n'as donc pas besoin de RTC avec pile.
Un Qz de 32, 768KHz sur les pin d'entrée de comptage de TMR1, tu places correctement les bons bit et ça marche.
Je l'ai fait !
Tu voudrais le code ?
Tu montres d'abord de la bonne volonté et tu publies ce que tu as déjà pondu, après on discutes.
Ca ne te plais pas, tant pis, c'est toi qui a le plus à perdre.
je plussoie...
si le PIC est alimenté en permanence, un Quartz 32Khz "utilisant"
l'interruption du TMR1 est la plus simple des solutions...
vede
;O]
Je n'ai pas mis de gants, c'est vrai. Mais quand je lis "Je veux", les quelques cheveux qui me restent se dressent ! Et surtout quand on arrive !
Au post #13, je t'ai quand même donné une solution avec TMR1.
Et si tu publiais ton code comme demandé plusieurs fois ?
sur cette adresse
http://www.filestube.com/3fe8ef8ef26...9/details.html
vous allez trouver le mikroc v7.0.0.3
pour le mikroc v6.2 je travaille avec
J'abandonne...Download: mikroC v7 0 0 3 crack rar
(j'ai envie de dire tant mieux ça ne fonctionne pas...)
En faisant une recherche trouvé ça:
http://www.mikroe.com/forum/viewtopi...c6bd2043b1f783
Je ne sais pas trop ce que c'est...
Poste ton bout de code.
Comprends pas bien, de plus ces posts datent de février et mars 2008.
C'est à y laisser son latin (déjà que je n'en ai pas beaucoup ...)
voici le code
# include "Config.h"
// déclaration des variables
unsigned short m,HourDate[7];
char *txt, LCD_txt[3], text[16], seconde, minute, heure, jour, mois, annee;
// prototypes des fonctions
void RTC_Initial_values(); // Valeurs initiales de l'horloge
void ds1307_write(unsigned short rtc_reg, unsigned short rtc_data);
void Read_DS1307();
//============================== ============================== ==================
// Initialisation des registres de l'horloge
//============================== ============================== ==================
void RTC_Initial_values()
{
I2C_Start(); // Active l'I2C
I2C_Wr(DS1307_DevAdr_Wr); // DS1307 en mode écriture
while (I2C_Is_Idle() == 0) ; // on attend tant que le bus I2C est occupé (0= occupé,1=libre)
I2C_Wr(0x00); // pointe sur le registre des secondes
while (I2C_Is_Idle() == 0) ;
I2C_Wr(0x00); // écrit la valeur 0 seconde
while (I2C_Is_Idle() == 0) ;
I2C_Wr(0x00); // écrit la valeur 0 dans le registre minute
while (I2C_Is_Idle() == 0) ;
I2C_Wr(0x0C); // écrit la valeur 12 dans le registre heure
while (I2C_Is_Idle() == 0) ;
I2C_Wr(0x05); // écrit la valeur 5 dans le registre jour (de la semaine)
while (I2C_Is_Idle() == 0) ;
I2C_Wr(0x14); // écrit la valeur 14 (n° du jour) dans le registre mois
while (I2C_Is_Idle() == 0) ;
I2C_Wr(0x11); // écrit la valeur 11 (n° du mois) dans le registre date
while (I2C_Is_Idle() == 0) ;
I2C_Wr(0x07); // écrit la valeur 7 dans le registre année
while (I2C_Is_Idle() == 0) ;
I2C_Stop(); // Arrête l'I2C
}
//============================== ============================== ==================
// Fonction d'écriture dans les registres de l'horloge I2C DS1307
//============================== ============================== ==================
void ds1307_write(unsigned short rtc_reg, unsigned short rtc_data)
{
I2c_start(); // Active l'I2C
I2c_Wr(DS1307_DevAdr_Wr); // 1101 000 est l'adresse de l'horloge, le LSB indique le mode (0=W, 1=R)
I2c_Wr(rtc_reg); // indique dans quel registre on veut écrire
I2c_Wr(rtc_data); // écrit la donnée dans le registre
I2c_stop(); // Arrête l'I2C
}
//============================== ============================== ==================
// Fonction de lecture des registres de l'horloge I2C DS1307
//============================== ============================== ==================
void Read_DS1307()
{
*(txt)=0; // initialise le pointeur txt
I2C_Stop(); // arrêt de l'I2C
delay_ms(50);
I2C_Start();
I2C_Wr(DS1307_DevAdr_Wr);
I2C_Wr(0);
I2C_Repeated_Start();
I2C_Wr(DS1307_DevAdr_Rd);
m=I2C_Rd(1); // on lit le byte avec acquittement de l'esclave requis
HourDate[6]=Bcd2Dec(m); // conversion BCD -> DECIMAL
ByteToStr(HourDate[6],LCD_txt); // formatage Byte en string pour le LCD
if (HourDate[6] < 10) // Si dizaine de secondes <10 on fait apparaitre le 0 des dizaines
{
LCD8_Chr(2,14,'0'); // sur la ligne 2, colonne 14 du LCD
LCD8_Chr(2,15,LCD_txt[2]); // les secondes apparaissent ligne 2, colonne 15 du LCD
}
else // sinon on affiche pas le 0 des dizaines de secondes
{
LCD8_Chr(2,14,LCD_txt[1]);
LCD8_Chr(2,15,LCD_txt[2]);
}
while (I2C_Is_Idle() == 0) ;
m=I2C_Rd(1); // minute(s)
HourDate[5]=Bcd2Dec(m);
ByteToStr(HourDate[5],LCD_txt);
if (HourDate[5] < 10)
{
LCD8_Chr(2,11,'0');
LCD8_Chr(2,12,LCD_txt[2]);
}
else
{
LCD8_Chr(2,11,LCD_txt[1]);
LCD8_Chr(2,12,LCD_txt[2]);
}
while (I2C_Is_Idle() == 0) ;
m=I2C_Rd(1); // heure(s)
HourDate[4]= Bcd2Dec(m);
ByteToStr(HourDate[4],LCD_txt);
if (HourDate[4] < 10)
{
LCD8_Chr(2,8,'0');
LCD8_Chr(2,9,LCD_txt[2]);
}
else
{
LCD8_Chr(2,8,LCD_txt[1]);
LCD8_Chr(2,9,LCD_txt[2]);
}
while (I2C_Is_Idle() == 0) ;
m=I2C_Rd(1); // jour(s) de la semaine
HourDate[3] = Bcd2Dec(m);
while (I2C_Is_Idle() == 0) ;
m=I2C_Rd(1);
HourDate[2] = Bcd2Dec(m); // date (n° du jour)
ByteToStr(HourDate[2],LCD_txt);
if (HourDate[2] < 10)
{
LCD8_Chr(1,8,'0');
LCD8_Chr(1,9,LCD_txt[2]);
}
else
{
LCD8_Chr(1,8,LCD_txt[1]);
LCD8_Chr(1,9,LCD_txt[2]);
}
while (I2C_Is_Idle() == 0) ;
m = I2C_Rd(1);
HourDate[1] = Bcd2Dec(m); // mois
ByteToStr(HourDate[1],LCD_txt);
if (mois < 10)
{
LCD8_Chr(1,11,'0');
LCD8_Chr(1,12,LCD_txt[2]);
}
else
{
LCD8_Chr(1,11,LCD_txt[1]);
LCD8_Chr(1,12,LCD_txt[2]);
}
while (I2C_Is_Idle() == 0) ;
m = I2C_Rd(0); // pas d'acquittement de l'esclave requis
HourDate[0] = Bcd2Dec(m); // année
ByteToStr(HourDate[0],LCD_txt);
if (HourDate[0] < 10)
{
LCD8_Chr(1,14,'0');
LCD8_Chr(1,15,LCD_txt[2]);
}
else
{
LCD8_Chr(1,14,LCD_txt[1]);
LCD8_Chr(1,15,LCD_txt[2]);
}
while (I2C_Is_Idle() == 0) ;
I2C_Stop();
}
re ;O]
moi je te conseille vivement de commencer par télécharger
la version actuelle (MikroC PRO 3.2 for PIC 2009), gratuite,
actuellement disponible sur le site de son éditeur MikroE, ici:
http://www.mikroe.com/en/compilers/mikroc/pro/pic/
vede
;O]
Je viens de compiler les 3 pages de prog...
Beaucoup d'erreurs de syntaxe...
Mais le plus amusant, c'est qu'une fois toutes ces erreurs corrigées, j'ai le message d'erreur (la dernière):
0 357 main function is not defined main function is not defined
et moi je jete pas l'éponge ;O]
-installe MikroC PRO ....
->nouveau projet...
-fait clignoter une led avec ton PIC...
delà :
(quand elle clignote... pas en simu... branchée sur le PIC...)...
->nouveau projet
-tu ouvres ton code avec Notepad...
-et copier/coller par bloc dans le projet avec adaptations/corrections
par exemple il n'y a pas de "librairie" DS1307...
mais une librairie I2C... dans MikroC...
et là je vais t'aider... à corriger...
est ce que tu as les fichiers .h (config et ds1307)??
c'est juste une question, ça pourrait aider...
mais vraiment pas indispensable...
vede
;O]
-
supprime le main !!!
compile... error...
remet le main, en sautant une ligne....
compile...
ça peur resoudre ce message d'erreur...
erreur commentée sur le forum MikroC
si persistante...
;O]
;O]
;O]
ben alors...
va falloir en mettre un...
;O]
;O]
;O]
j'ai pas ces fichiers