desde ya gracias por contestar!
lo de 255 lo puse como una suposicion de lo que podria estar pasando ya que cuando la variable del color disminuye por el ciclo for en la que esta involucrada,
de repente hacia un destello de maximo brillo y seguia normal.
con respecto al pic usado , lo hice con un 16f648a , logicamente adaptando las direcciones de memoria de los puertos , los pines en los que puse los leds , y tambien varió los pines del rs232.
funcionó todo , la comunicación serial, el cambio de colores , inclusive le agregue un printf en el barrido para jugar un poco.
de paso te comento que lo solucioné haciendo esto :
en la interrupcion del timer0 en lugar Ticks == rojo , TIcks == verde y Ticks == azul , les coloque el signo de mayor , es decir cuando los ticks sean inmediatamente mayores a la variable , que se apaguen el led en cuestión.
esto lo hice en forma medio empirica , ya que hubo veces en donde tenia un conteo en el main , y en el momento de la comparacion entraba justo una interrupción , y por ahi la igualdad se perdia , pero no asi la comparacion de: mayor que .
#int_Timer0
void ActivaLed ( )
{
Ticks ++ ;
if ( ticks == 0 )
{
LedAzul = 1 ;
LedRojo = 1 ;
LedVerde = 1 ;
}
if ( Ticks > Rojo ) LedRojo = 0 ; // aca cambie la == por la >
if ( Ticks > Verde ) LedVerde = 0 ; // aca cambie la == por la >
if ( Ticks > Azul ) LedAzul = 0 ; // aca cambie la == por la >
set_timer0 ( 140 ) ;
}
otra cosa : es seguro dejar que los ticks pasen " solos" a cero por overflow de variable? ya que no encontre que lo hayas puesto ,salvo al principio en el main
Un abrazo
Fastyx