TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: DarkVect en 26 de Octubre de 2006, 06:43:39

Título: Duda sobre utilizar RB0 como INT_EXT y función Output_b
Publicado por: DarkVect en 26 de Octubre de 2006, 06:43:39
Hola,

Quiero utilizar RB0 como interrupción externa por flanco para hacer una prueba y que me cuente el número de veces que pulso un botón en 10 segundos, por ejemplo. Y a la vez quiero mostrar el resultado en un 7 segmentos.

Mirando los ejemplos de los 7 segmentos veo que siempre se usan los pines desde RB0 a RB6 para cada barra/led del display con la función output_b(). Pero en mi caso RB0 ya lo he usado.

Puedo utilizar los pines desde RB1 a RB7 y dejar RB0 para la interrupción configurando el TRISB con todo salidas excepto RB0??

Para sacar el valor al 7 segmentos puedo usar output_b()?? Lo que he pensado es usarla teniendo en cuenta que el bit 0 siempre sea 0 y los valores para cada número estén corridos un bit a la izquierda o eso ya lo hace el compilador al ver que RB0 lo tengo como salida.

Gracias!!
Título: Re: Duda sobre utilizar RB0 como INT_EXT y función Output_b
Publicado por: maunix en 26 de Octubre de 2006, 09:17:19
Hola,

Quiero utilizar RB0 como interrupción externa por flanco para hacer una prueba y que me cuente el número de veces que pulso un botón en 10 segundos, por ejemplo. Y a la vez quiero mostrar el resultado en un 7 segmentos.

Mirando los ejemplos de los 7 segmentos veo que siempre se usan los pines desde RB0 a RB6 para cada barra/led del display con la función output_b(). Pero en mi caso RB0 ya lo he usado.

Puedo utilizar los pines desde RB1 a RB7 y dejar RB0 para la interrupción configurando el TRISB con todo salidas excepto RB0??

Para sacar el valor al 7 segmentos puedo usar output_b()?? Lo que he pensado es usarla teniendo en cuenta que el bit 0 siempre sea 0 y los valores para cada número estén corridos un bit a la izquierda o eso ya lo hace el compilador al ver que RB0 lo tengo como salida.

Gracias!!

Si, tranquilamente puedes usar un puerto con algunos pines como Entrada y otros como Salida.

El corrimiento lo debes hacer tú, el compilador no adivina esas cosas.

Si usas el C, un simple variable << 1 , funcionará.  Algunso compiladores también tienen rutinas de rotar izquierda.

Saludos
Título: Re: Duda sobre utilizar RB0 como INT_EXT y función Output_b
Publicado por: DarkVect en 26 de Octubre de 2006, 19:01:33
Gracias Maunix.

Simplemente era que si por ejemplo quiero hacer un 1 en el 7 segmentos y los dos leds que lo forman los tengo conetcados a RB1 y RB2, quería saber si hacer output_b(0b00000110) era válido, siendo RB0 de entrada.

Gracias!!