Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Horloge DS1307 et 18F4550



  1. #1
    TRAXXXX

    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. Publicité
  3. #2
    TRAXXXX

    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é

  4. #3
    TRAXXXX

    Question Re : Horloge DS1307 et 18F4550

    personne a une idée ?

  5. #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 :-)

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    TRAXXXX

    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

  9. #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+
    Ma marotte ? les microcontrôleurs ;=)

  10. Publicité
  11. #7
    TRAXXXX

    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

  12. #8
    TRAXXXX

    Re : Horloge DS1307 et 18F4550

    problème résolu..

    merci

  13. #9
    Agonez

    Re : Horloge DS1307 et 18F4550

    *Mode curieux ON*
    C'était quoi ?

Discussions similaires

  1. Horloge DS1307
    Par graindemais 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 chuck_joris 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. Réponses: 2
    Dernier message: 08/04/2009, 19h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.