Pièce jointe « capitulo2c.sgml »

Téléchargement

<sect1>
<title>Reloj tiempo real DS1307 y DS1337</title>
<para>Se communica con el PIC a través del bus I2C.</para>
<para>La documentación del fabricante MAXIM - DALLAS</para>
<para><ulink url="http://datasheets.maxim-ic.com/en/ds/DS1307.pdf"></ulink></para>
<para><ulink url="http://datasheets.maxim-ic.com/en/ds/DS1337-DS1337C.pdf"></ulink></para><sect2>
<title>Característica común</title>
<para>Dirección I2C, en 7 bits 1101000b</para>
<para>o sea en escritura 11010000b ou D0h</para>
<para>o sea en lectura 11010001b ou D1h </para>
<para>Se funcionan ambos con un cuarzo de 32768 Hz</para>
<para>Los 7 primeros registros codificados en binario BCD, los 4 bits menos significativos para las unidades y los 4 bits más significativos para las decenas, son </para>
<para>Los segundos (desde 00 hasta 59) registro 0 (el bit 7 (CH) del DS1307 esta específico)</para>
<para>Los minutos (desde 00 hasta 59) registro 1</para>
<para>Las horas (desde 00 hasta 23 ou desde 00 hasta 11 y AM/PM) registro 2</para>
<para>El dia de la semana (desde 1 hasta 7) registro 3</para>
<para>El dia del mes de (desde 00 hasta 31) registro 4</para>
<para>El mes (desde 1 hasta 12) registro 5 (el bit 7 &ldquo;siglo&rdquo; del DS1337 esta específico)</para>
<para>El año (desde 00 hasta 99) registro 6</para></sect2><sect2>
<title>Diferencias entre DS1307 y DS1337</title>
<sect3>
<title>Alimentación </title>
<para>El DS1307 puede ser alimentado por una pila botón 3V y el circuito puede funcionar en muy baja potencia alrededor de 400 nA</para></sect3><sect3>
<title>Salidas</title>
<para>El DS1307 posee una salida SQW/OUT que puede generar un pulso cuadrado de frecuencia 1Hz o 4 KHz o 8 KHz o 32KHz</para>
<para>El DS1337 posee dos salidas :</para>
<para>INTA una alarma con registros , que puede funcionar desde cada segundo hasta una vez por mes,</para>
<para>y SQW/INTB en modo SQW que puede generar un pulso cuadrado de frecuencia 1Hz o 4 KHz o 8 KHz o 32KHz.</para>
<para>en modo INTB casi idéntico a INTA, aqui la comparación se hace cuando los segundos son 00.</para>
<para>Las dos salidas de drenador abierto como el bus I2C.</para></sect3><sect3>
<title>Memoria del DS1307</title>
<para>El DS1307 tiene 64 registros cuyos 7 registros fechador y el registro 7 de control así como 56 registros en RAM</para></sect3><sect3>
<title>El registro 7 de control del DS1307</title>
<orderedlist>
<listitem><para>SQWE = 0 (deshabilita reloj) bit 3 registro 7 , la salida SQW/OUT = OUT bit 7 del registro 7</para></listitem><listitem><para>SQWE = 1 (habilita reloj) bit 3 registro 7, la frecuencia de la salida SQW/OUT depende de RS1 y RS0 bits1 y 0 del registro 7</para><itemizedlist>
<listitem><para>RS1 = 0 RS0 = 0 Frecuencia de la salida SQW 1 Hz</para></listitem><listitem><para>RS1 = 0 RS0 = 1 Frecuencia de la salida SQW 4096 Hz</para></listitem><listitem><para>RS1 = 1 RS0 = 0 Frecuencia de la salida SQW 8192 Hz</para></listitem><listitem><para>RS1 = 1 RS0 = 1 Frecuencia de la salida SQW 32768 Hz</para></listitem></itemizedlist></listitem></orderedlist><para>Cuidado : El DS1307 tiene también el bit CH bit 7 del registro 0 , se debe poner a 0 para habilitar el reloj. </para></sect3><sect3>
<title>Memoria del DS1337</title>
<para>Le DS1337 tiene 16 registros:</para><itemizedlist>
<listitem><para>7 registros horodateur</para></listitem><listitem><para>4 registros para la alarma 1 : segundos, minutos, horas, dia de la semana o del mes</para></listitem><listitem><para>3 registros para la alarma 2 : minutos, horas, dia de la semana o del mes</para></listitem><listitem><para>1 registro de control que manda las salidas INTA et SQW/INTB</para></listitem><listitem><para>1 registro de estado que informa sobre el estado de las banderas (flag) de las alarmas 1 y 2</para></listitem></itemizedlist></sect3><sect3>
<title>Máscara de bits de las alarmas del DS1337</title>
<para>Registro 07h registro de segundos de la alarma 1 , A1M1 bit 7 </para>
<para>Registro 08h registro de minutos de la alarma 1 , A1M2 bit 7 </para>
<para>Registro 09h registro de horas de la alarma 1 , A1M3 bit 7 </para>
<para>Registro 0Ah registro de dias de la alarma 1 , A1M4 bit 7 , DY/DT bit 6</para>
<para><informaltable><tgroup cols="6" colsep="1" rowsep="1">
<colspec colname="col0" align="center">
<colspec colname="col1" align="center">
<colspec colname="col2" align="center">
<colspec colname="col3" align="center">
<colspec colname="col4" align="center">
<colspec colname="col5" align="center">
<tbody>
<row>
<entry align="center" valign="top" namest="col0" nameend="col5">ALARM 1 REGISTER MASK BITS (BIT 7)</entry>
</row>
<row>
<entry align="center" valign="top">DY/DT</entry>
<entry align="center" valign="top">A1M4</entry>
<entry align="center" valign="top">A1M3 </entry>
<entry align="center" valign="top">A1M2 </entry>
<entry align="center" valign="top">A1M1</entry>
<entry align="center" valign="top">Ciclo de la ALARMA 1</entry>
</row>
<row>
<entry align="center" valign="top"></entry>
<entry align="center" valign="top"></entry>
<entry align="center" valign="top"></entry>
<entry align="center" valign="top"></entry>
<entry align="center" valign="top"></entry>
<entry align="center" valign="top"></entry>
</row>
<row>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">Alarma una cada segundo</entry>
</row>
<row>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen los segundos </entry>
</row>
<row>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen minutos y segundos</entry>
</row>
<row>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen horas ,minutos y segundos</entry>
</row>
<row>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen dia del mes, horas ,minutos y segundos</entry>
</row>
<row>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen dia de la semana, horas ,minutos y segundos</entry>
</row>
</tbody>
</tgroup></informaltable>La alarma se activa cuando se valen los registros del fechador y los registros de la alarma </para>
<informaltable><tgroup cols="5" colsep="1" rowsep="1">
<colspec colname="col0" align="center">
<colspec colname="col1" align="center">
<colspec colname="col2" align="center">
<colspec colname="col3" align="center">
<colspec colname="col4" align="center">
<tbody>
<row>
<entry align="center" valign="top" namest="col0" nameend="col4">ALARM 2 REGISTER MASK BITS (BIT 7)</entry>
</row>
<row>
<entry align="center" valign="top">DY/DT</entry>
<entry align="center" valign="top">A2M4</entry>
<entry align="center" valign="top">A2M3 </entry>
<entry align="center" valign="top">A2M2 </entry>
<entry align="center" valign="top">Ciclo de la ALARMA 2 </entry>
</row>
<row>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">Alarma cada minuto cuando se valen 00 los segundos</entry>
</row>
<row>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen minutos</entry>
</row>
<row>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen horas y minutos</entry>
</row>
<row>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen dia del mes, horas y minutos </entry>
</row>
<row>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">Alarma cuando se valen dia de la semana, horas y minutos</entry>
</row>
</tbody>
</tgroup></informaltable>
<para>Registro 0Bh registro de minutos de la alarma 2 , A2M2 bit 7 </para>
<para>Registro 0Ch registro de horas de la alarma 2 , A2M3 bit 7 </para>
<para>Registro 0Dh registro de dias de la alarma 2 , A2M4 bit 7 , DY/DT bit 6</para></sect3><sect3>
<title>El registro 14 (0Eh) de controle del DS1337</title>
<informaltable><tgroup cols="8" colsep="1" rowsep="1">
<colspec colname="col0" align="center">
<colspec colname="col1" align="center">
<colspec colname="col2" align="center">
<colspec colname="col3" align="center">
<colspec colname="col4" align="center">
<colspec colname="col5" align="center">
<colspec colname="col6" align="center">
<colspec colname="col7" align="center">
<tbody>
<row>
<entry align="center" valign="top">Bit 7</entry>
<entry align="center" valign="top">Bit 6</entry>
<entry align="center" valign="top">Bit 5</entry>
<entry align="center" valign="top">Bit 4</entry>
<entry align="center" valign="top">Bit 3</entry>
<entry align="center" valign="top">Bit 2</entry>
<entry align="center" valign="top">Bit 1</entry>
<entry align="center" valign="top">Bit 0</entry>
</row>
<row>
<entry align="center" valign="top">
 <inlineequation>
  <alt role='tex'>$\overline{EOSC}$
  </alt><graphic fileref="eqn/anon1009">
 </inlineequation></entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">RS2</entry>
<entry align="center" valign="top">RS1</entry>
<entry align="center" valign="top">INTCN</entry>
<entry align="center" valign="top">A2IE</entry>
<entry align="center" valign="top">A1IE </entry>
</row>
</tbody>
</tgroup></informaltable>
<para>EOSC se debe poner a 0 para habilitar el reloj. </para>
<para>Cuando INTCN = 0, SQW depende de RS2 y RS1</para>
<para>Salida SQW/
 <inlineequation>
  <alt role='tex'>$\overline{INTB}$
  </alt><graphic fileref="eqn/anon1010">
 </inlineequation> </para>
<informaltable><tgroup cols="5" colsep="1" rowsep="1">
<colspec colname="col0" align="center">
<colspec colname="col1" align="center">
<colspec colname="col2" align="center">
<colspec colname="col3" align="center">
<colspec colname="col4" align="center">
<tbody>
<row>
<entry align="center" valign="top">INTCN</entry>
<entry align="center" valign="top">RS2</entry>
<entry align="center" valign="top">RS1</entry>
<entry align="center" valign="top">Salida SQW/
 <inlineequation>
  <alt role='tex'>$\overline{INTB}$
  </alt><graphic fileref="eqn/anon1011">
 </inlineequation> </entry>
<entry align="center" valign="top">A2IE</entry>
</row>
<row>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">1Hz</entry>
<entry align="center" valign="top">X</entry>
</row>
<row>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">4096 Hz</entry>
<entry align="center" valign="top">X</entry>
</row>
<row>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">8192 Hz</entry>
<entry align="center" valign="top">X</entry>
</row>
<row>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">32768 Hz</entry>
<entry align="center" valign="top">X</entry>
</row>
<row>
<entry align="center" valign="top">1</entry>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">X</entry>
<entry align="center" valign="top">
 <inlineequation>
  <alt role='tex'>$\overline{A2F}$
  </alt><graphic fileref="eqn/anon1012">
 </inlineequation></entry>
<entry align="center" valign="top">1</entry>
</row>
</tbody>
</tgroup></informaltable>
<para>Cuando INTCN = 1 , se controla la salida
 <inlineequation>
  <alt role='tex'>$\overline{INTB}$
  </alt><graphic fileref="eqn/anon1013">
 </inlineequation> con 
 <inlineequation>
  <alt role='tex'>$\overline{A2F}$
  </alt><graphic fileref="eqn/anon1014">
 </inlineequation>, es decir cuando se valen el fechador y la alarma, A2F pone en estado alto y la salida pone en estado bajo.</para></sect3><sect3>
<title>El registro de estado 15 (0Fh) del DS1337</title>
<informaltable><tgroup cols="8" colsep="1" rowsep="1">
<colspec colname="col0" align="center">
<colspec colname="col1" align="center">
<colspec colname="col2" align="center">
<colspec colname="col3" align="center">
<colspec colname="col4" align="center">
<colspec colname="col5" align="center">
<colspec colname="col6" align="center">
<colspec colname="col7" align="center">
<tbody>
<row>
<entry align="center" valign="top">Bit 7</entry>
<entry align="center" valign="top">Bit 6</entry>
<entry align="center" valign="top">Bit 5</entry>
<entry align="center" valign="top">Bit 4</entry>
<entry align="center" valign="top">Bit 3</entry>
<entry align="center" valign="top">Bit 2</entry>
<entry align="center" valign="top">Bit 1</entry>
<entry align="center" valign="top">Bit 0</entry>
</row>
<row>
<entry align="center" valign="top">OSF</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">0</entry>
<entry align="center" valign="top">A2F</entry>
<entry align="center" valign="top">A1F </entry>
</row>
</tbody>
</tgroup></informaltable>
<para>Se pone OSF a 1 después un defecto del oscilador, hay que escribir a 0 después, no se puede escribir un 1.</para>
<para>A2F y A1F corresponden a las alarmas 2 y 1, A2F pone en estado alto cuando se valen la alarma 2 y el fechador si INTCN = 1 entonces la salida 
 <inlineequation>
  <alt role='tex'>$\overline{INTB}$
  </alt><graphic fileref="eqn/anon1015">
 </inlineequation> pone en estado bajo </para>
<para>También con A1F que pone en estado alto cuando se valen la alarme1 y el fechador y la salida 
 <inlineequation>
  <alt role='tex'>$\overline{INTA}$
  </alt><graphic fileref="eqn/anon1016">
 </inlineequation> pone en estado bajo</para></sect3></sect2><sect2>
<title>Comunicar con los DS13x7</title>
<para>Cuidado No olvidas al principio, habilitar el oscilador con el bit 7 CH del registro 0 del DS1307, o</para>
<para>el bit 7 EOSC del registro 14 del DS1337</para><sect3>
<title>Escritura I2C</title>
<para>Para escribir en el reloj tiempo real :</para><itemizedlist>
<listitem><para>Se debe empezar una trama enviando la dirección del componente DS1337 en escritura o sea D0h</para></listitem><listitem><para>Esperar el reconocimiento ACK = 0 del DS13x7 </para></listitem><listitem><para>Se debe apuntar sobre el registro donde se quiere escribir (por ejemplo 2 para el registro de horas)</para></listitem><listitem><para>Esperar el reconocimiento ACK = 0 del DS13x7</para></listitem><listitem><para>Se debe escribir el valor BCD del registro ( ejemplo 20H para 20 horas)</para></listitem><listitem><para>Esperar el reconocimiento ACK = 0 del DS13x7</para></listitem><listitem><para>Se puede escribir el valor del registro siguiente * (1 por lunes) registro 3</para></listitem><listitem><para>Esperar el reconocimiento ACK = 0 del DS1337</para></listitem><listitem><para>...</para></listitem><listitem><para>Se acaba con un fin de trama (stop)</para></listitem></itemizedlist><para>* el puntero de registro se incrementa automaticamente después la escritura del registro</para></sect3><sect3>
<title>Lectura I2C</title>
<para>Para leer en el reloj tiempo real :</para><itemizedlist>
<listitem><para>Se debe empezar una trama enviando la dirección del componente DS1337 en escritura o sea D0h</para></listitem><listitem><para>Esperar el reconocimiento ACK = 0 del DS1337 </para></listitem><listitem><para>Se debe apuntar sobre el registro donde se quiere escribir (por ejemplo 2 para el registro de horas)</para></listitem><listitem><para>Esperar el reconocimiento ACK = 0 del DS1337</para></listitem><listitem><para>Reiterar (restart) una trama enviando la dirección del componente DS1337 en lectura o sea D1h</para></listitem><listitem><para>Esperar el reconocimiento ACK = 0 del DS1337</para></listitem><listitem><para>Se debe leer el valor BCD del registro ( ejemplo 10H para 10 horas)</para></listitem><listitem><para>Enviar el reconocimiento ACK = 0 al DS1337 </para></listitem><listitem><para>Se puede leer el valor BCD del registro siguiente (ejeemplo 6 : sabado) </para></listitem><listitem><para>Enviar el no reconocimiento ACK=1 al DS1337 para parar la lectura</para></listitem><listitem><para>Se acaba con un fin de trama (stop)</para></listitem></itemizedlist></sect3><sect3>
<title>La biblioteca 13x7.h</title>
<para>Esta biblioteca permite leer y escribir en el DS1307 o DS1337</para>
<para>Aquí estan las 2 funciones :</para><itemizedlist>
<listitem><para>byte ds13x7_write(byte *temps,byte reg,byte n)</para></listitem><listitem><para>byte ds13x7_read(byte *temps, byte reg, byte n) </para></listitem></itemizedlist></sect3><sect3>
<title>ds13x7_write </title>
<para>Se permiten escribir los registros desde reg hasta reg+n-1 sea n registros, los valores escritos son en una tabla &ldquo;temps&rdquo; y se escribirán los valores de temps[reg] hasta temps[reg+n+1]</para>
<para>Se devuelve el reconocimiento 0 si hay exito.</para>
<para>Si hay un error de reconocimiento, se para el envio y se acaba la trama (stop) , se devuelve un &ldquo;1&rdquo; como reconocimiento.</para></sect3><sect3>
<title>ds13x7_read</title>
<para>Se permiten leer los registros desde reg hasta reg+n-1 sea n registros, los valores leidos desde el DS13x7 son escritos en una tabla &ldquo;temps&rdquo; y se escribirán los valores desde temps[reg] hasta temps[reg+n+1]</para>
<para>Se devuelve el reconocimiento 0 si hay exito.</para>
<para>Si hay un error de reconocimiento, se para el envio y se acaba la trama (stop) , se devuelve un &ldquo;1&rdquo; como reconocimiento.</para></sect3></sect2><sect2>
<title>Ejemplo</title>
<para>ej_ds1307.c</para>
<para>/**</para>
<para>* \file</para>
<para>* \brief Ejemplo para trabajar con i2c.h .</para>
<para>* \author Per Launay</para>
<para>* \date Diciembre-2008</para>
<para>* \version v0.01</para>
<para>* \par Leeme:</para>
<para>* Ejemplo de compilacion : ./compila.sh ej_i2c 16f877a . &lt;br&gt;&lt;br&gt;</para>
<para>* Preguntas y sugerencias a: fernando.pujaico.rivera@gmail.com&lt;br&gt;</para>
<para>* &lt;A HREF="http://pic-gcc-library.sourceforge.net"&gt;http://pic-gcc-library.sourceforge.net&lt;/A&gt;&lt;br&gt;</para>
<para>*/</para>
<para>#include &lt;pic/p16f877a.h&gt;</para>
<para>#define FOSC_HZ 4000000</para>
<para>#include &lt;i2c.h&gt;</para>
<para>#include &lt;uart.h&gt;</para>
<para>#include &lt;uart2.h&gt;</para>
<para>#include &lt;ds13x7.h&gt;</para>
<para>#define ADRe_ds1307 0xd0 /* adresse I2C de l'esclave DS1307 en écriture (escritura), R/W =0*/</para>
<para>#define ADRl_ds1307 0xd1 /* direccion I2C del esclavo DS1307 en lectura (lecture), R/W =1*/</para>
<para>//#define leer_hex() gethex(uart_getc)</para>
<para>//#define escribir_hex() puthex(uart_putc)</para>
<para>void mettre_heure(byte *temps) /* -- initialiser/inicializar l'horloge/el reloj temps reel/tiempo real DS1337 */</para>
<para>{</para>
<para>temps[6]=gethex(uart_getc); //año</para>
<para>temps[5]=gethex(uart_getc); //mes</para>
<para>temps[4]=gethex(uart_getc); //dia </para>
<para>temps[3]=geth(uart_getc); // dia de la semana</para>
<para>temps[2]=gethex(uart_getc); //hora</para>
<para>temps[2] &amp;= 0x3f; /* modo 24 horas */</para>
<para>temps[1] =gethex(uart_getc); //minuto</para>
<para>temps[0]=gethex(uart_getc); //segundo</para>
<para>ds13x7_write(temps,0,7);</para>
<para>}</para>
<para>void afficheur(byte *temps)</para>
<para>{</para>
<para>puth(uart_putc,temps[3]&amp;0x0f); //dia de la semana</para>
<para>puthex(uart_putc,temps[4]); //dia</para>
<para>puthex(uart_putc,temps[5]);//mes</para>
<para>puthex(uart_putc,temps[6]);//año</para>
<para>puthex(uart_putc,temps[2]);//hora</para>
<para>puthex(uart_putc,temps[1]);//minuto</para>
<para>puthex(uart_putc,temps[0]);//segundo</para>
<para>uart_putc('\n'); </para>
<para>}</para>
<para>int main(void)</para>
<para>{</para>
<para>byte sec,temps[16]; </para>
<para>uart_open(SET_9600_8N1);</para>
<para>i2c_init(9);</para>
<para>//i2c_init(I2C_100K);</para>
<para>temps[14]=0x07; /* DS1337,poner ch en estado bajo , se habilita el reloj */</para>
<para>temps[15]=0x00; /* inicializar la alarma */</para>
<para>uart_puts("i2c"); </para>
<para>ds13x7_write(temps,14,2); //poner el reloj en marcha y initializar</para>
<para>sec=0; </para>
<para>uart_puts(" debut"); </para>
<para>while(1) //b(o)ucle sans/sin fin</para>
<para>{</para>
<para>ds13x7_read(temps,0,7); </para>
<para>if(temps[0] != sec){</para>
<para>sec = temps[0];</para>
<para>afficheur(temps); } </para>
<para>if((uart_kbhit())&amp;&amp;(uart_getc()=='E')) //tecla E poner la hora</para>
<para>mettre_heure(temps);</para>
<para>}</para>
<para>return 0;</para>
<para>}</para></sect2></sect1>

Fichiers joints

Pour vous référer aux pièces jointes d'une page, utilisez attachment:filename, comme indiqué ci-dessous dans la liste de fichiers. N'utilisez pas l'URL du lien [get], car elle peut changer et donc être facilement cassée.
 Tous les fichiers | Fichiers sélectionnés supprimer déplacer vers la page copier vers la page

Vous n'êtes pas autorisé à joindre un fichier à cette page.

Site hébergé sur un Cloud Public IKOULA Ikoula