TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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!!
-
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
-
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!!