Programa Ambilight
{
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;
}
}
}