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