Problema en sentencia DO-while en C

OK, me parece que vi algo.

Deberias hacer algo distinto en lugar de #define mode,

Podrias poner en tu archivo h, int mode = MANUAL, o algo asi.

Fijate si va por ahi
Un saludo
 
El problema de la linea 157 y el de la linea 172 son exactamente el mismo: te falta la variable mode en alguna parte, por que has cometido el mismo error que antes :oops:, usas una variable que no está declarada (o no está visible en el ambito del switch) y por ende no tiene valor asignado. Lo que te recomienda chclau es correcto. Directamente borrá (o comentá) el #define mode y "descomentá" la linea inmediatamente anterior unsigned char mode y agregale =MANUAL; o el valor conveniente para el arranque con la configuración por defecto del sistema...
 
bueno amigos gracias por la ayuda ., un poco de recuento ., el problema lo tengo en esta parte ., y la verdad que no se como resolverlo., la parte de swich case., la saque de varios tutoriales de internet ., pero por lo que vi y estudie deberia ser mas o menos asi entonces hasta ahora los errores que me indica son problemas de definiciones., el resultado de esta suma y multiplicacion es el valor que toma una de las variables del DO-whilelo concreto es que el problema lo tengo en esta parte​
PHP:
//**************** temporizador de interupcion de sonido *************** //
ISR(TIMER0_OVF_vect)    //interrupción del temporizador
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    int count;
        
 switch(mode)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    {
        case SOUND:
            count = OV_COUNT + DmxAddress;
            break;
        case MANUAL:
            count = OV_COUNT + DmxAddress * 4;
            break;
        default:count = OV_COUNT;
            
    }                            
    if(timer_counter>=count){
        timer_counter=0;
        sound_time=TRUE;    //tiempo mínimo deducible iluminado, puede cambiar? color
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    if (mode==MANUAL){
            change_color();
        }
 
    }else{ timer_counter++; }
}
ahora si tengo que re-hacer esta parte no sabria por donde empezar porque por lo que tome de guia es mas o menos asi en todos los casos y disculpen por tanta molestia pero hace meses que busco una solucon y no logro dar con el problema problemahice lo que me indicaron para probar pero me indica un error que sigue siendo el 157​
 
Última edición:
Atrás
Arriba