Buenas foristas, les comento mi nuevo problema.
Estoy haciendo un pequeño controlador de un display de Matriz de Leds, y sucede lo siguiente. Mi programa (en PCW C) hace lo siguiente (redactado en pseudo codigo):
bucle infinito
__desde columna = 0 hasta 5(uso un solo display, hago barrido de columna)
____PORTA = 00000000
____PORTB = columna
____Esperar 1 uS (para que el IC de addressing indirecto tome la posicion)
____PORTA = xx0xxxxx (0 es MCLR)
____Esperar 200 uS (probe valores entre 200uS y 1mS y todos me dieron el mismo resultado, sin flickering, por lo menos para esta cantidad de columnas)
__fin desde
fin bucle infinito
la explicación del codigo es la siguiente:
ejecuto el bucle infinito que da funcionamiento permanente a mi codigo. Dentro de este ciclo, tengo otro ciclo del tipo For, que se va a encargar de: poner todas las salidas de fila en estado bajo,
hacer el cambio de columna (columna = columna + 1), enviarlo al integrado de addressing indirecto (ahora explico esta parte), y recien ahi poner las salidas de las filas en PORTA (obviando RA5, es MCLR y solo sirve como entrada).
Por el lado de hardware, mi situacion es la siguiente
________________|-- o o o o o
________________|-- o o o o o
PORTA del 16F648A|-- o o o o o
________________|-- o o o o o
________________|-- o o o o o
________________|-- o o o o o
________________|-- o o o o o
__________________ |
_|
_| |
_| | | | | ... |
_________________---------------------------
__________________ 0 1 2 3 4 5 6 7 8... 15
_____________________74HC154
__________________ A B C D
_________________---------------------------
__________________ |
_|
_|
_|
______________________________________
__________________1/2 PORTB del 16F648A
(espero se entienda el dibujo

)
Mi problema es el siguiente: cuando el barrimiento va a una velocidad que forma la figura sin flick (entre 200uS y 1mS), la intensidad cae muchisimo...pero el problema no son las resistencias (estoy poniendo resistencias en cada fila, 180ohms[150ohms deberian ser segun mis calculos, pero no tenia

]), ademas, puse un SW en RA5, y cada vez que se imprime la informacion del display consulta, si RA5 esta en estado alto, retarda 1Segundo en vez de 200uS, y cuando hace eso, la intensidad de los leds son suficientes. Lo que note, es que en las columnas en que tengo 1 solo led encendido, tiene mas intensidad la luz del led. Cual puede ser el problema? porque se supone que el integrado tiene un drenaje suficiente para bancarse esa cantidad de leds.
Si a alguien se le ocurre algo, lo minimo que sea que pueda ser, porfas posteelo.

Gracias gente!
PD: si algun punto no quedo claro, avisenme y lo explico en profundidad