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.
Lorsque je lance le programme en mode debugger via mplab et proteus je recupere 255 comme valeurs..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); }
je comprend pas ..
J'ai essayer en rajoutant Ack() et IdleI2C() apres chaque WriteI2C() mais cela ne change rien..
Merci pour votre aide
-----