Red de conocimiento informático - Conocimiento sistemático - Programa Ambilight

Programa Ambilight

void CW()

{

uchar m=0,n=0;

while(1)

{

for(;m<8;m++)

{

P2=table[m];

delayms(500);

if(P05==0)

break; // Salga del bucle for presionando la tecla

P2=0XFF;

}/ / En este momento, m ya es mayor que 8, por lo que el segundo ciclo no se ejecutará

if(P05==0) // Debería completarse en poco tiempo, por lo que saltará del bucle while. Por lo tanto, saltará directamente del bucle while

break;

for(;n<4;n++)

{

P3= tabla[n+2];

demorams(500);

if(P05==0)

descanso;

P3=0X3C;

}// Esto es básicamente lo mismo que el anterior

if(P05==0)

break;

}

}

//****************************** **** ************* ********************************** ****** ************

Análisis: Los valores se acumularán cuando el programa se esté ejecutando. Como se mencionó anteriormente, su programa solo se puede ejecutar una vez. .

No es lo mismo que dijiste después de presionar el botón. No lo entiendo del todo. Según el análisis del programa, después de presionar el botón, debería ser igual que cuando está el programa. funcionando normalmente. Después de solo un ciclo, no habrá más acciones. La inicialización de datos debe leerse en un bucle

//********************************* ************************************************* ***** *************

void CW( )

{

uchar m=0,n =0;

while(1)

{

for(m=0; m<8;m++) //Al comienzo del ciclo, m se inicializará automáticamente una vez

{

P2=table[m];

delayms(500);

if(P05 ==0)

break; //Presiona la tecla para salir del bucle

P2=0XFF;

}//Salir cuando m sea mayor que 8

if(P05==0) // Debería completarse en poco tiempo, por lo que m saldrá del bucle while

. Saltará directamente del bucle while

break;

for(n=0;n<4;n++)

{

P3= tabla[n+2];

demorams(500);

if(P05==0)

descanso

P3 =0X3C;

}// Esto es básicamente lo mismo que el anterior

if(P05==0)

break;

}

}

}