80*256 Hz sollten kein Problem darstellen, aber hier fehlen die ganzen
Typen, die Initialisatzion des TMR0 incl Prescaler (OPTION).
Hier ein paar kleinigkeiten, wegen Optimierung.
void interrupt isr(void)
{
if(T0IF)
{
TMR0 = RELOAD;
if(!++gTick)
{
// Wenn RED ein flag (bit) ist, wäre RED=gRed; effizienter.
if(gRed)
RED = ON;
if(gGreen)
GREEN = ON;
if(gBlue)
BLUE = ON;
}
else
{
if(gTick > gRed)
RED = OFF;
if(gTick > gGreen)
GREEN = OFF;
if(gTick > gBlue)
BLUE = OFF;
}
// wenn gDelay ein unsigned ist, dann ist if(gDelay) gDelay--;
effizienter
if(gDelay > 0) gDelay--;
T0IF = 0;
}
}