¿Cómo se enciende la luz LED de 51 microcontroladores desde ambos lados hasta el centro, una por una, al mismo tiempo, y luego apaga las luces una por una desde el centro hacia ambos lados?
Para hacerlo simple, use una tabla, calcúlela de antemano, colóquela en la ROM y compílela y genere línea por línea cuando la use.
Para ser más complicado, abra un búfer, use un programa de bucle, complete una línea a la vez de acuerdo con diferentes patrones, genere la salida y luego calcule la línea nuevamente. Esto no se recomienda a menos que la mesa sea demasiado grande.
#define len 8
char tablelist[][len] =
{
"00000000",
"10000001",
"01000010",
"00100100",
"00011000",
}
esquema( char * s )
{
int i;
for(i=0; i { if ( s[i] == '0' ) { // La luz correspondiente está encendida p> } else { // La luz correspondiente está apagada } } } main() { para(;;) { p> esquema( &tablelist[i]); retraso(..); } }