Tienes el siguiente programa escrito en C. El objeto del mismo es complementar todos los bits de el registro P0...
sfr P0 = 0x80; //define el puerto P0
P0 = 0x00; // intentamos asignar un valor al puerto P0...
void main (void)
{while (1)
{P0=~P0;}
}
...pero al compilarlo en Keil obtienes el siguiente error: "error C231 : 'P0' : redefinition".
¿Qué está pasando? Al asignar un valor al puerto en la instrucción 'P0 = 0x00;' lo hemos hecho fuera del programa principal (fuera del main) y el compilador interpreta que la instrucción es una definición de una variable (a la que asigna un valor directamente), pero como esta variable ha sido definida en la instrucción anterior 'sfr P0 = 0x80;' el compilador no lo permite.
La solución es inicializar las variables dentro del main.
Recuerda: Define todas las variables que vayas a necesitar antes del 'main' e inicialízalas dentro.
No hay comentarios:
Publicar un comentario