Horloge DS1307 et 18F4550
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Horloge DS1307 et 18F4550



  1. #1
    invite60546543

    Question Horloge DS1307 et 18F4550


    ------

    Bonjour

    je cherche désespérément depuis deux jours à utiliser une horloge ds1307.

    J'utilise MPLAB + MCC18 + PROTEUS

    mon pic posséde un quartz externe de 4MHZ.

    Code:
    #include <p18f4550.h>
    #include <delays.h>
    #include "lcd.h"
    #include <stdio.h>
    #include "config.h"
    #include <i2c.h>
    
    
    #pragma config PWRT = OFF	// Power Up Timer OFF (pb avec les versions rev06 des 18F2320)
    #pragma config BOR = ON 	// validation Brown-out Reset
    #pragma config LVP = OFF	// dévalide Low Voltage Programming
    #pragma config WDT = OFF
    
     struct
    {
    	unsigned char heure;
    	unsigned char minute;
    	unsigned char seconde;
    	unsigned char jour;
    	unsigned char mois;
    	unsigned char annee;
    } date;
    
    
    void init_i2c(void)
    {
    
    
    	OpenI2C(MASTER, SLEW_OFF);
    	SSPADD = 9;
    
    } 
    
    void ecrit_date(void)
    {	
    					
    	StartI2C();				
    	WriteI2C(0xD0);	
    	WriteI2C(0x00);
    	WriteI2C(0x02);
    	StopI2C();	
    				
    } 
    void lit_date(void)
    {	
    
    	StartI2C();
    	WriteI2C(0xD0);		// Sélection DS1307 + Write
    	WriteI2C(0x00);
    	StartI2C();
    	WriteI2C(0xD1);
    	date.seconde = ReadI2C();
           date.minute = ReadI2C();
           date.heure = ReadI2C();
    
    
    
    
    	StopI2C();
    }
    
    void main(void)
    {
    
    	init_i2c();
    	ecrit_date();
    
    	lit_date();	
    	while(1);
    			
    
    }
    Lorsque je lance le programme en mode debugger via mplab et proteus je recupere 255 comme valeurs..

    je comprend pas ..

    J'ai essayer en rajoutant Ack() et IdleI2C() apres chaque WriteI2C() mais cela ne change rien..

    Merci pour votre aide

    -----

  2. #2
    invite60546543

    Re : Horloge DS1307 et 18F4550

    Code:
    #include <p18f4550.h>
    #include <delays.h>
    #include "lcd.h"
    #include <stdio.h>
    #include "config.h"
    #include <i2c.h>
    
    
    #pragma config PWRT = OFF	// Power Up Timer OFF (pb avec les versions rev06 des 18F2320)
    #pragma config BOR = ON 	// validation Brown-out Reset
    #pragma config LVP = OFF	// dévalide Low Voltage Programming
    #pragma config WDT = OFF
    
     struct
    {
    	unsigned char heure;
    	unsigned char minute;
    	unsigned char seconde;
    	unsigned char jour;
    	unsigned char mois;
    	unsigned char annee;
    } date;
    
    
    void init_i2c(void)
    {
    
    
    	OpenI2C(MASTER, SLEW_OFF);
    	SSPADD = 9;
    
    } 
    
    void ecrit_date(void)
    {	
    					
    	StartI2C();				
    	WriteI2C(0xD0);	
    	WriteI2C(0x00);
    	WriteI2C(0x02);
            WriteI2C(0x03);
            WriteI2C(0x04);
    	StopI2C();	
    				
    } 
    void lit_date(void)
    {	
    
    	StartI2C();
    	WriteI2C(0xD0);		// Sélection DS1307 + Write
    	WriteI2C(0x00);
    	StartI2C();
    	WriteI2C(0xD1);
    	date.seconde = ReadI2C();
           date.minute = ReadI2C();
           date.heure = ReadI2C();
    
    
    
    
    	StopI2C();
    }
    
    void main(void)
    {
    
    	init_i2c();
    	ecrit_date();
    
    	lit_date();	
    	while(1);
    			
    
    }
    code corrigé

  3. #3
    invite60546543

    Question Re : Horloge DS1307 et 18F4550

    personne a une idée ?

  4. #4
    RicounetZap

    Re : Horloge DS1307 et 18F4550

    Bonjour

    Je trouve que la section de configuration est un peu légère, il manque pas mal de définition tel que le choix de l'oscillateur, du post et pre scaller et autres broutilles.
    C'est une carte personnelle ou tu peux ajouter une simple led pour faire quelques tests simple ?
    Cordialement
    N'importe quoi, for ever :-)

  5. A voir en vidéo sur Futura
  6. #5
    invite60546543

    Re : Horloge DS1307 et 18F4550

    Bonjour

    Code:
    Je trouve que la section de configuration est un peu légère, il manque pas mal de définition tel que le choix de l'oscillateur, du post et pre scaller et autres broutilles.
    C'est une carte personnelle ou tu peux ajouter une simple led pour faire quelques tests simple ?
    Cordialement
    j'utilise actuellement ce programme pour un lcd et ADC...

    merci

  7. #6
    RISC

    Re : Horloge DS1307 et 18F4550

    Salut
    Citation Envoyé par TRAXXXX Voir le message
    mon pic posséde un quartz externe de 4MHZ.
    Si tu utilises un quartz, tes bits de configuration sont faux...
    Il faut choisir je pense cela :
    #pragma config FOSC = XTPLL _XT // quartz 4 MHz + PLL x 24
    #pragma config PLLDIV = 1 // pas de division pour l'entrée PLL
    #pragma config CPUDIV = OSC1_PLL2
    #pragma config USBDIV = 2 // divise 96MHz par 2 = 48MHz
    #pragma config PWRT = ON // Nécessaire pour les quartz
    #pragma config BOR = ON // validation Brown-out Reset
    #pragma config LVP = OFF // dévalide Low Voltage Programming
    #pragma config WDT = OFF
    Pour mieux comprendre regarde la section 2-2 de la datasheet

    a+

  8. #7
    invite60546543

    Re : Horloge DS1307 et 18F4550

    Bonjour

    Jai effectuer les modifications sur mon code et cela ne marche toujours pas..

    je ne sais oû chercher...

    ps: la valeur des donnees reçu bouge si je touche le SSPADD (ici configuré à 9 car Fquart=4mhz)



    merci

  9. #8
    invite60546543

    Re : Horloge DS1307 et 18F4550

    problème résolu..

    merci

  10. #9
    invitedf53f6be

    Re : Horloge DS1307 et 18F4550

    *Mode curieux ON*
    C'était quoi ?

Discussions similaires

  1. Horloge DS1307
    Par invite67c9851b dans le forum Électronique
    Réponses: 20
    Dernier message: 22/02/2015, 22h54
  2. Synchronisation entre horloge atomique et horloge d'un récepteur GPS
    Par invite0e188b54 dans le forum Électronique
    Réponses: 10
    Dernier message: 06/12/2012, 22h56
  3. Horloge ds1307
    Par Benjiboubou dans le forum Électronique
    Réponses: 44
    Dernier message: 24/05/2011, 07h51
  4. 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, 19h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.