Hola amigos de nuevo, esta vez escribo porque estoyhaciendo un pequeño ejemplo con un 18f46k20 (utilizo este ya que tengo un entrenado que lo lleva), el ejemplo es el siguiente:
#include <18f46k20.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use standard_io(b)
#use fixed_io(d_outputs=PIN_D0,PIN_D1,PIN_D2,PIN_D3,PIN_D4,PIN_D5,PIN_D6,PIN_D7)
///VARIABLES GLOBALES
char i=0;
char tabBCD[8]={0b00000001,0b00000010,0b00000100,0b00001000,0b00010000,0b00100000,0b01000000,0b10000000};
///LLAMADA FUNCION INTERRUPCION
#INT_EXT
void IntRB0()
{
if(i>7)
i=0;
output_d(tabBCD[i]);
i++;
}
///PROGRAMA
void main(void)
{
enable_interrupts(int_ext); //activar interrupcion externa
ext_int_edge(L_TO_H); //configuracion:interrupcion cuando señal esta en alta
enable_interrupts(GLOBAL); //todas las interrupciones desactivadas
for(;;){} //bucle infinito esperando interrupcion
}
Pues bien cuando tiene que encenderse el led de la salida RD2, este no se enciende, cuando lo simulo en proteus. Lo que si me he dado cuenta que en proteus, esta salida, tiene un semicirculo, y cuando le toca encenderse, el led no lo hace, pero veo en proteus que s´´i se pone en rojo su correspondiente salida.
¿A que es debido? ¿Es a colector abierto? He probado poner una resistencia entre RD2 y alimentacion, pero no funciona.
Como siempre gracias a todos de antemano por vuestra colaboracion.