Attachment 'capitulo1j.sgml'

Download

        <sect1 id="timer1" xreflabel="timer1">
                <title>M&oacute;dulo timer1</title>
                <para>Autor: Santiago Gonzalez</para>
                <para>Correo: santigoro en gmail.com</para>
                <para>Aqu&iacute; se muestran las funciones para trabajar con el timer1 de los PIC16F.
                </para>

                <sect2 id="timer1init" xreflabel="timer1_init">
                <title>timer1_init</title>
                <para>
        Inicializa timer1 con reloj interno (modo timer) o externo (modo counter).
        El modo counter puede ser sincronizado con el reloj del pic o as&iacute;ncrono.
        </para>
                <screen>
        void timer1_init(unsigned char set_mode);
                </screen>
                <para>
                set_mode Establece el modo de funcionamiento.
                </para>
                <screen>
        TIMER_INTERN    :Usa reloj interno.
        COUNTER_SYNC    :Usa reloj/est&iacute;mulo externo (modo counter), s&iacute;ncrono.
        COUNTER_ASYNC   :Usa reloj/est&iacute;mulo externo (modo counter), as&iacute;ncrono.

        timer1_init(TIMER_INTERN);
                </screen>
                <para>
                Pone a 0 la cuenta del timer1 y borra flag de interrupciones.
                </para>
                </sect2>

                <sect2 id="timer1enable" xreflabel="timer1_enable">
                <title>timer1_enable</title>
                <para>Habilita (inicia la cuenta) el timer1.</para>
                <screen>
        #define timer1_enable()     T1CONbits.TMR1ON = 1
                </screen>
                <para>
                En modo timer el contador se incrementa en cada ciclo de intrucciones (Fosc./4)
                si no se usa el prescaler.
        En modo COUNTER el incremento se produce en el flanco de subida
        de la señal de referencia.
                </para>
                </sect2>


                <sect2 id="timer1disable" xreflabel="timer1_disable">
                <title>timer1_disable</title>
                <para>Deshabilita (para la cuenta) el timer1.</para>
                <screen>
        #define timer1_disable()    T1CONbits.TMR1ON = 0
                </screen>
                </sect2>


                <sect2 id="timer1oscenable" xreflabel="timer1_osc_enable">
                <title>timer1_osc_enable</title>
                <para>Habilita el uso de oscilador externo, conectado entre T1OSO y T1OSI.</para>
                <screen>
        #define timer1_osc_enable()     T1CONbits.T1OSCEN = 1
                </screen>
                <para>
                Los pines T1OSO y T1OSI son configurados como entradas, 
        ingnorando la configuraci&oacute;n de TRIS de esos pines.
        Se toma el flanco de subida de la señal en T1OSI.
                </para>
                </sect2>


                <sect2 id="timer1oscdisable" xreflabel="timer1_osc_disable">
                <title>timer1_osc_disable</title>
                <para>Deshabilita el uso de oscilador externo.</para>
                <screen>
        #define timer1_osc_disable()    T1CONbits.T1OSCEN = 0
                </screen>
                <para>
        En este caso se toma el flanco de subida de la señal en T1OSO.
                </para>
                </sect2>


                <sect2 id="timer1setprescaler" xreflabel="timer1_set_prescaler">
                <title>timer1_set_prescaler</title>
                <para>
                Establece el valor del prescaler.
                </para>
                <screen>
        void timer1_set_prescaler(unsigned char set_presc);
                </screen>
                <para>set_presc Establece el valor del prescaler.</para>
                <para>Las posibles opciones son: </para>
                <screen>
        T1_PRESC_DIV_1  // Frecuencia de ciclo de instrucciones (FOSC/4)
        T1_PRESC_DIV_2  // (FOSC/4) del PIC dividido entre 2
        T1_PRESC_DIV_4  // (FOSC/4) del PIC dividido entre 4
        T1_PRESC_DIV_8  
                </screen>
                <para>
                Cualquier operaci&oacute;n de escritura en el registro TMR1L ó TMR1H automaticamente
                pone a 0 el contador del prescaler, aunque mantiene su configuraci&oacute;n.
                </para>
                </sect2>


                <sect2 id="timer1write" xreflabel="timer1_write">
                <title>timer1_write</title>
                <para>Establece (escribe a TMR1L y TMR1H) el valor del contador del timer1.</para>
                <screen>
        void timer1_write(unsigned int set_count);
                </screen>
                <para>set_count Establece el valor del contador del timer1.</para>
                </sect2>


                <sect2 id="timer1read" xreflabel="timer1_read">
                <title>timer1_read</title>
                <para>Lee el valor del contador del timer1.</para>
                <screen>
        unsigned int timer1_read(void);
                </screen>
                <para>Devuelve un valor de tipo int (16 bites).</para>
                </sect2>

                <sect2 id="ejemplotimer1" xreflabel="Ejemplo timer1">
                <title>Ejemplo M&oacute;dulo timer1</title>
                <para> para compilar necesitas los siguientes comandos </para>
                <para>
                <screen>
Ejemplo de compilacion : ./compila.sh ej_timer1.c 16f877a
                </screen>
                </para>
                <para> ej_timer1.c </para>
                <screen>
/**
 *  \file 
 *  \brief Ejemplo para trabajar con timer1.h
 *  \author     Santiago Gonzalez
 *  \date       Enero-2009
 *  \version    v0.01
 *  \par Leeme:
 *  Diagrama Esquematico: PIC_GCC_LIBRARY_PATH/schematics/pdf/
 *  Ejemplo de compilacion : ./compila.sh ej_timer1 16f877a . 
 *  Ejemplo de utilizaci&oacute;n de las funciones del m&oacute;dulo TIMER1.
 *  v&aacute;lido para la familia 16f,
 *  En este ejemplo se utiliza el timer1 junto con un contador por software,
 *  para hacer un led parpadeante que var&iacute;a en velocidad: 
 *  conectar un led u otra salida a RB7.
 *  El led parpadear&aacute; en r&aacute;fagas de 10, acelerando su velocidad en cada r&aacute;faga,
 *  a 4 velocidades distintas, correspondientes a los 4 posibles valores del prescaler.
 */

#include &lt;pic/p16f877a.h>
#include &lt;timer1.h>

void parpadeo()                             // Rutina que hace 10 parpadeos de led
{
    unsigned char contador = 0;

    while ( contador < 10 )
    {
        while (timer1_read() < 32767)      // mitad del tiempo encendido
            PORTBbits.RB7 = 1;

        while (timer1_read() > 32767)      // mitad del tiempo apagado
            PORTBbits.RB7 = 0;

        contador++;
    }  
}

int main(void) 
{       
    TRISBbits.TRISB7 = 0;                 // RB7 como salida
    PORTBbits.RB7 = 0;

    timer1_init(TIMER_SYNC);              // Inicia timer1 modo timer

bucle:

    timer1_set_prescaler(T1_PRESC_DIV_8); // Establece prescaler en frecuencia de instrucciones / 8
    timer1_enable();                      // Inicia la cuenta
    parpadeo();                           // LLama a la rutina que hace 10 parpadeos
    timer1_disable();                     // Para el timer1
    timer1_write(0);                      // Pone timer1 a 0

    timer1_set_prescaler(T1_PRESC_DIV_4); // Establece prescaler en frecuencia de instrucciones / 4
    timer1_enable();
    parpadeo();
    timer1_disable();
    timer1_write(0);

    timer1_set_prescaler(T1_PRESC_DIV_2); // Establece prescaler en frecuencia de instrucciones / 2
    timer1_enable();
    parpadeo();
    timer1_disable();
    timer1_write(0);

    timer1_set_prescaler(T1_PRESC_DIV_1); // Establece prescaler en frecuencia de instrucciones / 1
    timer1_enable();
    parpadeo();
    timer1_disable();
    timer1_write(0);

    goto bucle;

}

                </screen>
        </sect1>

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2009-03-02 21:07:01, 0.5 KB) [[attachment:GenerarDoc.sh]]
  • [get | view] (2009-03-02 21:49:40, 642.0 KB) [[attachment:GtkPicGccAbout.eps]]
  • [get | view] (2009-03-02 21:50:10, 28.2 KB) [[attachment:GtkPicGccAbout.png]]
  • [get | view] (2009-03-02 21:47:10, 4.9 KB) [[attachment:adc.eps]]
  • [get | view] (2009-03-02 21:47:24, 0.9 KB) [[attachment:adc.png]]
  • [get | view] (2009-03-02 21:00:02, 0.1 KB) [[attachment:capitulo1.sgml]]
  • [get | view] (2009-03-02 21:00:35, 1.7 KB) [[attachment:capitulo1a.sgml]]
  • [get | view] (2009-03-02 21:00:50, 1.7 KB) [[attachment:capitulo1b.sgml]]
  • [get | view] (2009-03-02 21:01:15, 2.8 KB) [[attachment:capitulo1c.sgml]]
  • [get | view] (2009-03-02 21:01:25, 7.0 KB) [[attachment:capitulo1d.sgml]]
  • [get | view] (2009-03-02 21:01:33, 5.0 KB) [[attachment:capitulo1e.sgml]]
  • [get | view] (2009-03-02 21:01:41, 4.9 KB) [[attachment:capitulo1f.sgml]]
  • [get | view] (2009-03-02 21:02:02, 5.7 KB) [[attachment:capitulo1g.sgml]]
  • [get | view] (2009-03-02 21:02:26, 12.8 KB) [[attachment:capitulo1h.sgml]]
  • [get | view] (2009-03-02 21:02:37, 4.4 KB) [[attachment:capitulo1i.sgml]]
  • [get | view] (2009-03-02 21:02:46, 6.3 KB) [[attachment:capitulo1j.sgml]]
  • [get | view] (2009-03-02 21:02:54, 4.3 KB) [[attachment:capitulo1k.sgml]]
  • [get | view] (2009-03-02 21:03:01, 1.6 KB) [[attachment:capitulo1l.sgml]]
  • [get | view] (2009-03-02 21:03:14, 0.2 KB) [[attachment:capitulo2.sgml]]
  • [get | view] (2009-03-02 21:03:32, 2.6 KB) [[attachment:capitulo2a.sgml]]
  • [get | view] (2009-03-02 21:03:44, 2.8 KB) [[attachment:capitulo2b.sgml]]
  • [get | view] (2009-03-02 21:04:00, 22.0 KB) [[attachment:capitulo2c.sgml]]
  • [get | view] (2009-03-02 21:04:22, 0.3 KB) [[attachment:capitulo3.sgml]]
  • [get | view] (2009-03-02 21:04:59, 0.9 KB) [[attachment:capitulo3a.sgml]]
  • [get | view] (2009-03-02 21:05:11, 0.2 KB) [[attachment:capitulo4.sgml]]
  • [get | view] (2009-03-02 21:05:21, 1.4 KB) [[attachment:capitulo4a.sgml]]
  • [get | view] (2009-03-02 21:05:33, 2.7 KB) [[attachment:capitulo4b.sgml]]
  • [get | view] (2009-03-02 21:05:51, 5.6 KB) [[attachment:capitulo4c.sgml]]
  • [get | view] (2009-03-02 21:06:00, 0.2 KB) [[attachment:capitulo5.sgml]]
  • [get | view] (2009-03-02 21:06:20, 9.1 KB) [[attachment:capitulo5a.sgml]]
  • [get | view] (2009-03-02 21:49:04, 5.6 KB) [[attachment:compare.eps]]
  • [get | view] (2009-03-02 21:46:31, 1.1 KB) [[attachment:compare.png]]
  • [get | view] (2009-03-02 21:49:17, 7.6 KB) [[attachment:eeprom.eps]]
  • [get | view] (2009-03-02 21:48:01, 1.2 KB) [[attachment:eeprom.png]]
  • [get | view] (2009-03-02 21:06:33, 0.8 KB) [[attachment:ejemplos.sgml]]
  • [get | view] (2009-03-02 21:06:48, 1.7 KB) [[attachment:faq.sgml]]
  • [get | view] (2009-03-02 21:48:51, 6.3 KB) [[attachment:flash.eps]]
  • [get | view] (2009-03-02 21:50:20, 1.0 KB) [[attachment:flash.png]]
  • [get | view] (2009-03-02 21:50:40, 5.0 KB) [[attachment:i2c.eps]]
  • [get | view] (2009-03-02 21:50:50, 0.9 KB) [[attachment:i2c.png]]
  • [get | view] (2009-03-02 21:50:59, 8.8 KB) [[attachment:interrupt.eps]]
  • [get | view] (2009-03-02 21:51:09, 1.2 KB) [[attachment:interrupt.png]]
  • [get | view] (2009-03-02 21:07:16, 0.6 KB) [[attachment:introduccion.sgml]]
  • [get | view] (2009-03-02 21:07:33, 1.8 KB) [[attachment:introducciona.sgml]]
  • [get | view] (2009-03-02 21:07:43, 1.1 KB) [[attachment:introduccionb.sgml]]
  • [get | view] (2009-03-02 21:08:06, 1.6 KB) [[attachment:introduccionc.sgml]]
  • [get | view] (2009-03-02 21:08:17, 27.5 KB) [[attachment:introducciond.sgml]]
  • [get | view] (2009-03-02 21:08:29, 1.0 KB) [[attachment:introduccione.sgml]]
  • [get | view] (2009-03-02 21:08:42, 64.9 KB) [[attachment:introduccionf.sgml]]
  • [get | view] (2009-03-02 21:51:21, 6.1 KB) [[attachment:pinio.eps]]
  • [get | view] (2009-03-02 21:51:39, 1.0 KB) [[attachment:pinio.png]]
  • [get | view] (2009-03-02 21:51:54, 4.8 KB) [[attachment:pwm.eps]]
  • [get | view] (2009-03-02 21:52:03, 0.9 KB) [[attachment:pwm.png]]
  • [get | view] (2009-03-02 21:09:06, 1.1 KB) [[attachment:referencias.sgml]]
  • [get | view] (2009-03-02 22:26:32, 4.8 KB) [[attachment:spi.eps]]
  • [get | view] (2009-03-02 22:26:54, 0.8 KB) [[attachment:spi.png]]
  • [get | view] (2009-03-02 22:27:21, 7.6 KB) [[attachment:system.eps]]
  • [get | view] (2009-03-02 22:27:31, 1.2 KB) [[attachment:system.png]]
  • [get | view] (2009-03-02 22:27:42, 7.3 KB) [[attachment:timer0.eps]]
  • [get | view] (2009-03-02 22:28:00, 1.1 KB) [[attachment:timer0.png]]
  • [get | view] (2009-03-02 22:28:32, 7.1 KB) [[attachment:timer1.eps]]
  • [get | view] (2009-03-02 22:28:12, 1.0 KB) [[attachment:timer1.png]]
  • [get | view] (2009-03-02 22:28:45, 7.4 KB) [[attachment:timer2.eps]]
  • [get | view] (2009-03-02 22:28:55, 1.1 KB) [[attachment:timer2.png]]
  • [get | view] (2009-03-02 22:26:07, 587.2 KB) [[attachment:tutorial.pdf]]
  • [get | view] (2009-03-02 22:25:35, 2215.3 KB) [[attachment:tutorial.ps]]
  • [get | view] (2009-03-02 21:09:56, 4.4 KB) [[attachment:tutorial.sgml]]
  • [get | view] (2009-03-02 22:29:05, 5.3 KB) [[attachment:uart.eps]]
  • [get | view] (2009-03-02 22:29:16, 0.9 KB) [[attachment:uart.png]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.

Heberge par Ikoula