El temporizador 1 no puede aumentar en la fuente T1OSI externa para PIC16f627A

1

Nuevo en la programación PIC

Intentando simular un PIC16F627A TIMER 1 utilizando MPLAB X IDE donde RB7 / T1OSI se incrementa, y alterna entre RB4 y TMR1 ISR.

#include <stdio.h>


#include <xc.h



#pragma config WDTE = 0;

//timer1
//period 1 ms or every 100 T1CKI
//external from T1CKI rising edge (1 sec Period) T1OSCEN = 0; //
//PIN RB4

void interrupt Pulse_ISR (void)
{
    PORTBbits.RB4 = !PORTBbits.RB4;
    PIR1bits.TMR1IF = 0;
    TMR1L = 0x96;
    TMR1H = 0xFF;    
}


void Init (void)
{
    //Global Interrupt
    //Peripheral Interrupt
   //TMR1IE
   //1:8 prescalar
   //t = 1us*8*N    N = 100 
   //TMR1 = (2^16+1) - 100 = 65436 FF96

   TRISB4 = 0;//RB4 is output
   TRISB6 = 1;//RB6 and RB7 are input
   TRISB7 = 1;

  INTCONbits.GIE = 1;
  INTCONbits.PEIE = 1;
  PIE1bits.TMR1IE = 1;

  T1CONbits.T1CKPS = 0b11;//1:8
  T1CONbits.T1OSCEN = 1;//TMR1 increments on T1OSI RB7
  T1CONbits.TMR1CS = 1;




  TMR1L = 0x96;
  TMR1H = 0xFF;


  PORTBbits.RB4 = 1;

  T1CONbits.TMR1ON = 1;    
}

void main (void)
{
    Init ();

    //I will simulate a 1 ms pulse 50% Duty Cycle at T1CKI/RB6



    while(1);
}

Creé un estímulo en el que creé un pulso en el pin RB7 con un período de 500us

yveoelresultadoatravésdelospinesIO

Construyo el proyecto y lo depuro, miro los RB4 IO Pins y nunca se alterna.

¿Puede alguien decirme por qué? Gracias.

MPLAB X IDE v3.55 PIC16F627A Herramienta de depuración: Simulador

    
pregunta Forat

1 respuesta

1

Desde la página 170 de la Guía del usuario de MPLAB® IDE sobre las capacidades de simulación en PICs de 14 bits:

  Se admite

Timer1 en sus diversos modos, excepto cuando se ejecuta en modo de contador por un cristal externo.

    
respondido por el zakkos

Lea otras preguntas en las etiquetas