Autor Tema: Problemas con Timer1 del dsPIC33FJ128GP802  (Leído 5349 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Gabriel_SANLUIS

  • PIC10
  • *
  • Mensajes: 20
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #15 en: 15 de Mayo de 2016, 16:33:45 »
Lo que intento hacer funcionar es esto que encontré en internet..... Fijense por que no hay manera de que ande. Es con el cristal externo de 20 MHz ... y estoy usando unos capacitores de 104 pf ... 100000 pf .... Ahh y encontré en un documento de microchip el DS70292E ... pagina 141 .. que debo usar una resistencia de 1M ohm entre las patas OSC1 y OSC2 para un cristal tipo XT o HS .... y el mismo esta conectado a las patas SOSC0 y SOSC1 ....
Aquí les mando en un adjunto el practico, a ver si alguien lo puede mirar...o probar.
Gracias.
* PRÁCTICA 1.pdf
(136.58 kB - descargado 233 veces)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #16 en: 15 de Mayo de 2016, 17:53:44 »
Podrias subir una imagen de tu circuito ?

Desconectado Gabriel_SANLUIS

  • PIC10
  • *
  • Mensajes: 20
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #17 en: 15 de Mayo de 2016, 18:54:18 »
Aquí te subo una imagen del circuito. De acuerdo al doc de microchip, puse una resistencia de 1Mohm entre OSC1 y OSC2 .... y el cristal lo puse entre las patas SOSC0 y SOSC1 .... uso unos capacitares cerámicos de 22pF ....


* 13.jpg
(74.45 kB, 257x456 - visto 323 veces)


« Última modificación: 15 de Mayo de 2016, 18:57:36 por Gabriel_SANLUIS »

Desconectado Gabriel_SANLUIS

  • PIC10
  • *
  • Mensajes: 20
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #18 en: 15 de Mayo de 2016, 18:56:56 »

* 12.jpg
(113.46 kB, 288x512 - visto 330 veces)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #19 en: 15 de Mayo de 2016, 19:35:13 »
El cristal va en OSC1 y OSC2. SOSC1/SOSC2 es para otro cristal y se usa para uno de 32Khz

Los capacitores del cristal ponele de 27pF ( entre 20pF y 30pF seguro que va a funcionar seguro) , y no unos 104 que es igual a .1uF
27pF esta marcado con el numero 27 solo en el capacitor.

La resistencia para el oscilador por ahora no creo que haga falta.

Y deberia estar, el MCLR esta bien, el Vcap imagino que tambien ( pide de un valor correcto casi siempre ) y las alimentaciones estan, lo que queda son entradas y salidas. Esa correccion y deberia funcionar.

Desconectado Gabriel_SANLUIS

  • PIC10
  • *
  • Mensajes: 20
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #20 en: 15 de Mayo de 2016, 19:39:42 »
Este es el progama Principal que estoy usando.

#include "xc.h"
//#include"configuracion.h"

// *******************Configuracion de bits **********************

void retardo_ms(void);

int main(void) {
    TRISB = 0B1100111111111111;     // Bit B13 como salida.
   
    while(1){
        //LATB = 0B0010000000000000;
        LATBbits.LATB13=1;
        retardo_ms();                   // Rutina de retardo.
        LATBbits.LATB13=0;              // Pone a '0' bit 13.
        retardo_ms();                   // Rutina de retardo.
            }
}

// **** FUNCION DE RETARDO ***

void retardo_ms(void){
    T1CON =0;
    T1CON = 0x8030;
    TMR1 =0;
                                // Valor en el registro ( Retardo 20ms)
    PR1= 782;
    IPC0bits.T1IP =0x01;
   
    IFS0bits.T1IF=0;            // Borra el Flag de Interrup Timer1
    IEC0bits.T1IE =1;           // Habilita interrupcion Timer1
   
    T1CONbits.TON =1;           // Start Timer
     
    while(IFS0bits.T1IF == 0);
   
}

// Timer 1 interrupt service routine toggles LED on RD1
void __attribute__((__interrupt__, __auto_psv__)) _T1Interrupt(void)
{
    // Clear Timer 1 interrupt flag
    IFS0bits.T1IF = 0;
 
    // Toggle LED on RD1
    _LATB13 = 1 - _LATB13;
}

Desconectado Gabriel_SANLUIS

  • PIC10
  • *
  • Mensajes: 20
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #21 en: 15 de Mayo de 2016, 19:42:37 »
Y tengo dentro de las carpetas del proyecto::: HEADER FILES ... el siguiente archivo con las configuraciones de los FUSES.... ( Me podrias decir si eso esta bien ??? ).... A este archivo lo llamo en el programa principal con un #include"configuracion.h" .... Esta bien asi?....


#include <xc.h>

// FBS
#pragma config BWRP = WRPROTECT_OFF     // Boot Segment Write Protect (Boot Segment may be written)
#pragma config BSS = NO_FLASH           // Boot Segment Program Flash Code Protection (No Boot program Flash segment)
#pragma config RBS = NO_RAM             // Boot Segment RAM Protection (No Boot RAM)

// FSS
#pragma config SWRP = WRPROTECT_OFF     // Secure Segment Program Write Protect (Secure segment may be written)
#pragma config SSS = NO_FLASH           // Secure Segment Program Flash Code Protection (No Secure Segment)
#pragma config RSS = NO_RAM             // Secure Segment Data RAM Protection (No Secure RAM)

// FGS
#pragma config GWRP = OFF               // General Code Segment Write Protect (User program memory is not write-protected)
#pragma config GSS = OFF                // General Segment Code Protection (User program memory is not code-protected)

// FOSCSEL
#pragma config FNOSC = PRI              // Oscillator Mode (Primary Oscillator (XT, HS, EC))
#pragma config IESO = OFF               // Internal External Switch Over Mode (Start-up device with user-selected oscillator source)

// FOSC
#pragma config POSCMD = HS              // Primary Oscillator Source (XT Oscillator Mode)
#pragma config OSCIOFNC = OFF           // OSC2 Pin Function (OSC2 pin has clock out function)
#pragma config IOL1WAY = OFF            // Peripheral Pin Select Configuration (Allow Multiple Re-configurations)
#pragma config FCKSM = CSDCMD           // Clock Switching and Monitor (Both Clock Switching and Fail-Safe Clock Monitor are disabled)

// FWDT
#pragma config WDTPOST = PS32768        // Watchdog Timer Postscaler (1:32,768)
#pragma config WDTPRE = PR128           // WDT Prescaler (1:128)
#pragma config WINDIS = OFF             // Watchdog Timer Window (Watchdog Timer in Non-Window mode)
#pragma config FWDTEN = OFF              // Watchdog Timer Enable (Watchdog timer always enabled)

// FPOR
#pragma config FPWRT = PWR128           // POR Timer Value (128ms)
#pragma config ALTI2C = OFF             // Alternate I2C  pins (I2C mapped to SDA1/SCL1 pins)

// FICD
#pragma config ICS = PGD1               // Comm Channel Select (Communicate on PGC1/EMUC1 and PGD1/EMUD1)
#pragma config JTAGEN = OFF             // JTAG Port Enable (JTAG is Disabled)



Desconectado Gabriel_SANLUIS

  • PIC10
  • *
  • Mensajes: 20
Re:Problemas con Timer1 del dsPIC33FJ128GP802
« Respuesta #22 en: 15 de Mayo de 2016, 19:59:54 »
GRACIASSSSSSSSS !!!!!!!!!!!!! Amigos !!!!! Mil gracias KILLERJC  uZYNQ  ... y luismh . !!!! Logre que funcionara, gracias a su ayuda !!!.
Sin su ayuda, aun estaría dando vueltas. Asi que muy agradecido.


* 14.jpg
(71.8 kB, 465x262 - visto 316 veces)


 

anything