Módulo de trabajo con ds13x7.h


Funciones

byte ds13x7_write (byte *temps, byte reg, byte n)
 escribe n registros desde el registro reg
byte ds13x7_read (byte *temps, byte reg, byte n)
 lee n registros desde el registro reg, ylo carga en temps

Descripción detallada

se puede encontrar un ejemplo de uso en ej_ds13x7.c

Documentación de las funciones

byte ds13x7_read ( byte temps,
byte  reg,
byte  n 
)

lee n registros desde el registro reg, ylo carga en temps

Parámetros:
temps,: el puntero temps donde se escribe la fecha,
reg,: el número del primero registro a leer,
n,: el numero de registros a leer.
Devuelve:
"0" buena recepción

"1" mala recepción

Definición en la línea 73 del archivo ds13x7.h.

Hace referencia a ADRe_ds13x7, ADRl_ds13x7, i2c_read_with_ack(), i2c_restart(), i2c_start(), i2c_stop(), y i2c_write_with_ack().

00074 {
00075     byte x,i,tmp;
00076     i2c_start();                        //début de trame
00077     x=i2c_write_with_ack(ADRe_ds13x7);  //adresse I2C en écrture du DS1307
00078     if (!x) x=i2c_write_with_ack(reg);  //positionner le pointeur de registre à reg
00079     if(!x) {                            //si acquittement OK à 0 
00080         i2c_restart();                  //relancer une trame
00081         x=i2c_write_with_ack(ADRl_ds13x7);      //adresse I2C en lecture du DS1307
00082         if (!x) {                               //si acquittement OK à 0
00083             for (i=1;i<n;i++) 
00084                 temps[reg+i-1]=i2c_read_with_ack(0) ;   //lit les registres jusqu'à n-1
00085             temps[reg+n-1]=i2c_read_with_ack(1) ;       //lit le dernier registres reg+n
00086         }
00087     }
00088     i2c_stop();                         //fin de trame
00089     return x;   
00090 }

Gráfico de llamadas para esta función:

byte ds13x7_write ( byte temps,
byte  reg,
byte  n 
)

escribe n registros desde el registro reg

Parámetros:
temps : el puntero temps que contiene la fecha,
reg : el número del primer registro a escribir,
n,: el numero de registros a escribir
Devuelve:
"0" buena escritura

"1" mala escritura

se debe definir una tabla tiempo de 16 octetos en el fichero principal

Definición en la línea 51 del archivo ds13x7.h.

Hace referencia a ADRe_ds13x7, i2c_start(), i2c_stop(), y i2c_write_with_ack().

00052 {
00053         byte i,x;
00054         i2c_start();                            //début de trame
00055         x =i2c_write_with_ack(ADRe_ds13x7);     //adresse I2C en écrture du DS1307
00056         if (!x) x=i2c_write_with_ack(reg);      //si acquittement OK à 0 positionner 
00057                                                 //le pointeur de registre à reg
00058         for (i=0;i<n;i++)                       //écrire n registres
00059         if (!x) x=i2c_write_with_ack(temps[reg+i]);     //si l'acquittement est à zéro continuer 
00060         i2c_stop();     //fin de trame
00061         return x;       //si pas d'acquittement affiché erreur d'acquittement
00062 }

Gráfico de llamadas para esta función:


Generado el Thu Jan 8 00:56:53 2009 para pic-gcc-library por  doxygen 1.5.1