TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: jrody en 14 de Abril de 2011, 03:29:08
-
Hola amigos de TodoPic.
Escribo para pedir ayuda. ya estoy a punto de tirar la toalla y renunciar a los PIC.
El problema que tengo es que no puedo leer una entrada de PIC16F876A en el Puerto A.0 y A.1 y con esta señal prender Led en Puerto B.0 y B.1 respectivamente, tengo entendido que el puerto A tiene aplicaciones analógicas y que lo tengo que poner a digital, y que tengo que definir si es de entrada o salida. Estoy seguro que en esta parte esta mi error porque esta misma practica ya la logre pero con el puerto B del mismo PIC recibiendo una señal en el B.0 para prender led en el B.5
Tengo un Oscilar de 4Mhz Externo y estoy programando con un MasterPorg.
Anexo mi programa en MicroPICBASIC. Saludos y muchas gracias de antemano por la ayuda que me puedan brindar.
Modifique mi post con un ejemplo mucho mas chico y directo.
@ device XT_OSC
@ device WDT_OFF
@ device PWRT_ON
DEFINE osc 4
ADCON1 = 7 ; converto todo el puerto A en digital
TRISA = 1 ; indico que todos lo pin del PA son de Entrada.
uno VAR porta.0 ; boton 1
dos VAR porta.1 ; boton 2
amarillo VAR portb.0 ; led amarillo en a.2
verde VAR portb.1 ; led verde en a.3
Inicio:
HIGH amarillo ;prendo los led para señales de vida
PAUSE 1000
LOW amarillo
PAUSE 1000
HIGH verde
PAUSE 1000
LOW verde
PAUSE 1000
espera:
IF uno = 0 THEN GOTO prendeama ;si uno es precionado prende amarillo
IF dos = 0 THEN GOTO prendever ;si dos es precionado prende verde
GOTO espera
prendeama:
GOSUB norebote ; a subrutina norebote
HIGH amarillo ; prendo amarillo
PAUSE 2000 ; pausa 1 segundo
LOW verde ; apago amarillo
GOTO espera ; regreso a esperar boton
prendever:
GOSUB norebote ; a subrutina norebote
HIGH verde ; prendo verde
PAUSE 2000 ; pausa 1 segundo
LOW verde ; apago verde
GOTO espera ; regreso a esperar boton
norebote:
IF uno = 0 THEN norebote
IF dos = 0 THEN norebote
PAUSE 25
RETURN
END
-
Hola, no veo que setees el puerto como entrada.
trisa = 255
En tu codigo te recomendaria usar el antirebote despues de que ejecutes el codigo de cada tecla, trata de no usar GOTO mas usa el GOSUB y RETURN.
Pd. No dupliques tus mensajes, con que lo pongas una vez es suficiente, date una vuelta por las reglas del foro.
Saludos.
-
OK. Muchas gracias por contestar
El puerto A lo estoy seteando con TRIAS = 1 (todos los pin a 1)
Ya intente con TRISA = 255, y nada no camina.
Gracias por el comentario tendré en cuanta las reglas para la próxima, Mil disculpas soy nuevo en esto del foro.
-
.
Deberías deshabilitar también los comparadores analógicos, poniendo 0x07 en el registro CMCON.
Saludos.
-
.
Deberías deshabilitar también los comparadores analógicos, poniendo 0x07 en el registro CMCON.
Saludos.
Nada amigo a la hora de compilar me marca error no acepta el comando CMCON el PIC que estoy usando es un 16F876A.
ERROR Line 25: Syntax error cmcon = 0x07. (Practica2.pbp)
-
Hola, no veo que setees el puerto como entrada.
trisa = 255
En tu codigo te recomendaria usar el antirebote despues de que ejecutes el codigo de cada tecla, trata de no usar GOTO mas usa el GOSUB y RETURN.
Pd. No dupliques tus mensajes, con que lo pongas una vez es suficiente, date una vuelta por las reglas del foro.
Saludos.
OK Amigo muchas excelente ya camino.
Lo único que cambie del código ya publicado es la siguiente linea.
TRISA = 255