Buenas.
Estoy realizando un proyecto con el PIC16F876 y todo ha ido más o menos bien. Tengo dos leds, que en función de la programación se enciende uno u otro. El caso es que quiero hacer que al iniciar el PIC se enciendan ambos a la vez y me presento con el siguiente problema:
Hago que las patas 4 (RA2) y 5 (RA3) sean salidas: TRISA.2 = 0; TRISA.3 = 0. Hasta ahí todo genial.
En otra parte del programa hago porta.2 = 1 y a continuación porta.3 = 1 (programo en mikroBasic) y observo que solo se enciende un led, el correspondiente a RB3. He probado a hacer un delay de un segundo entre una instrucción y la siguiente y en el osciloscopio observo que cuando pongo un 1 a la salida port1.3 se pone un cero en porta.2.
He pensado que podía ser debido a que el PIC no entregara la suficiente corriente, pero estoy mediendo directamente sin carga y se reproduce el mismo problema.
También he descartado que al tratarse del mismo puerto (A) y a la ubicación tan próxima entre pines pueda estar ahí el error, pero he probado en hacer el pin RB1 también como salida y sucede otro comportamiento que tampoco es el esperado:
Primero enciendo RB1, correcto.
Hago un delay de 1 sg, sigue encendido, correcto.
Enciendo RA2, y RB1 sigue encendido, correcto.
Delay de 1sg, siguen encendidos tanto RA2 y RB1, correcto.
Enciendo RA3 y en ese momento se apaga RA2, pero RB1 sigue encendido --> NO CORRECTO
Hago un delay de 2 sg, y es en ese momento cuando se me apaga RB1.
Ahora me acabo de dar cuenta que utilizo la librería de mikrobasic para utilizar una pantalla LCD y que al sacar por pantalla una frase, quizás sea quien haga que RB1 sea cero, aunque no esté conectado. Aunque esto podría contestar mi problema que RB1 se apague. ¿Por qué se apaga RA2 cuando enciendo RA3?
Alguien podría ayudarme.
Gracias de antemano y perdón si no me explicado lo suficiente.
Estoy realizando un proyecto con el PIC16F876 y todo ha ido más o menos bien. Tengo dos leds, que en función de la programación se enciende uno u otro. El caso es que quiero hacer que al iniciar el PIC se enciendan ambos a la vez y me presento con el siguiente problema:
Hago que las patas 4 (RA2) y 5 (RA3) sean salidas: TRISA.2 = 0; TRISA.3 = 0. Hasta ahí todo genial.
En otra parte del programa hago porta.2 = 1 y a continuación porta.3 = 1 (programo en mikroBasic) y observo que solo se enciende un led, el correspondiente a RB3. He probado a hacer un delay de un segundo entre una instrucción y la siguiente y en el osciloscopio observo que cuando pongo un 1 a la salida port1.3 se pone un cero en porta.2.
He pensado que podía ser debido a que el PIC no entregara la suficiente corriente, pero estoy mediendo directamente sin carga y se reproduce el mismo problema.
También he descartado que al tratarse del mismo puerto (A) y a la ubicación tan próxima entre pines pueda estar ahí el error, pero he probado en hacer el pin RB1 también como salida y sucede otro comportamiento que tampoco es el esperado:
Primero enciendo RB1, correcto.
Hago un delay de 1 sg, sigue encendido, correcto.
Enciendo RA2, y RB1 sigue encendido, correcto.
Delay de 1sg, siguen encendidos tanto RA2 y RB1, correcto.
Enciendo RA3 y en ese momento se apaga RA2, pero RB1 sigue encendido --> NO CORRECTO
Hago un delay de 2 sg, y es en ese momento cuando se me apaga RB1.
Ahora me acabo de dar cuenta que utilizo la librería de mikrobasic para utilizar una pantalla LCD y que al sacar por pantalla una frase, quizás sea quien haga que RB1 sea cero, aunque no esté conectado. Aunque esto podría contestar mi problema que RB1 se apague. ¿Por qué se apaga RA2 cuando enciendo RA3?
Alguien podría ayudarme.
Gracias de antemano y perdón si no me explicado lo suficiente.