TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: antoniojdobarro en 09 de Marzo de 2011, 05:38:16
-
Es necesario indicarle los pines de entrada y salida, si no lo hago funciona bien.
O acaso es necesario para que le asigne a los de entrada el estado 1, y a los de salida el estado 0?
-
O acaso es necesario para que le asigne a los de entrada el estado 1, y a los de salida el estado 0?
Asi exactamente, es necesario e imprescindible.
-
Perfecto, muchas gracias.
-
Bien, utilizo el pcw para programar el pic, y si no le indico ninguna configuración de entrada y salida funciona bien.
Como configuro las entradas como 0 y salida como uno, suponiendo por ejemplo A0 entrada y B0 salida. Con el comando trisa? o eso solamente es en ensamblador.
-
Bien, utilizo el pcw para programar el pic, y si no le indico ninguna configuración de entrada y salida funciona bien.
Como configuro las entradas como 0 y salida como uno, suponiendo por ejemplo A0 entrada y B0 salida. Con el comando trisa? o eso solamente es en ensamblador.
Hola, como bien te indicó tapi8, esto siempre es necesario. Pero como estás trabajando con CCS, tienes la directiva #use standard_io activada por defecto. En pocas palabras, esta directiva tiene la tarea de hacer que un pin sea de entrada o de salida según como se use. La desventaja es que esta directiva utiliza más RAM.
Si utilizas por ejemplo la directiva #use_fast_io, utilizas menos RAM, pero aquí si debes utilizar la instrucción set_tris_x() para asignar la dirección de los pines del puerto.
Por ejemplo:
set_tris_b(0x0f); // B7, B6, B5, B4 son salidas y B3, B2, B1, B0 son entradas
Saludos!
-
Bien, utilizo el pcw para programar el pic, y si no le indico ninguna configuración de entrada y salida funciona bien.
Como configuro las entradas como 0 y salida como uno, suponiendo por ejemplo A0 entrada y B0 salida. Con el comando trisa? o eso solamente es en ensamblador.
Para que sean entradas los bits correspondientes del registro tris tienen que estar en 1 y para que sean salidas tienen que estar en 0.
En CCS , como ya indicó bmb, tienes la función "set_tris_x" (siendo x el puerto que quieras configurar; a, b, c, d...)
En el caso de tu ejemplo para configurar sólo el pin A0 como entrada y que el resto del puerto A quede como salida sería
En el caso de B0 como salida y suponiendo el resto del puerto B como entrada, sería....
-
Simplemente perfecto, muchas gracias.
-
Hola.
He jugado con el ANSEL, ADCON0.7 y CMCON0 = 7 y no he logrado hacer un simple programa que dependiendo del estado de un swich, cambiar el estado de un led.
El pic es un 12f615. Estoy programando en Microcode.
Este es el programa:
define OSC 8
input gpio.4
ANSEL = 0 ' 12F615 Set all pins to digital
ADCON0.7 = 1
SYMBOL Led = gpio.5
CMCON0 = 7 'Comparators off
inicio:
if 1 = gpio.4 then
high led
endif
if 0 = gpio.4 then
low led
endif
goto inicio
end
Saludos.
-
el ansel y adcon es para poner los pines a digital/analogicos
pero despues de esto debes poner los pines a entrada/salida con el tris
-
el ansel y adcon es para poner los pines a digital/analogicos
pero despues de esto debes poner los pines a entrada/salida con el tris
Voy a probarlo.
Saludes