X-Git-Url: https://git.llucax.com/z.facultad/66.09/etherled.git/blobdiff_plain/5b3a8f73a2eccd20452b8e2d628df024b925b44e..6add33161e732ed834469f217a7ba97200694d63:/src/main.c diff --git a/src/main.c b/src/main.c index 60ed5db..f980df1 100644 --- a/src/main.c +++ b/src/main.c @@ -2,6 +2,7 @@ #include "debug.h" #include "leds.h" +#include "reg51.h" #include "netdev.h" #include "eth.h" #include "ip.h" @@ -9,16 +10,24 @@ void main(void) { - // Apagamos todos los leds - leds(0); + // Inicializamos leds + leds_init(); + + // Hacemos prueba simple de los leds + leds_test(); // Inicializamos dispositivo de red if (!netdev_init()) { - leds(0xFFFF); - while(1); // Si falla init nos quedamos bobos + // Si hubo un error, quedan prendidos todos los leds + leds_write(0xFFFF); + return; } + // Comienza a 'dibujar' + EA = 1; // Habilita interrupciones globalmente + TR2 = 1; // Pone a correr el 'dibujado' + // Inicializo IP ip_addr_local[0] = 10; ip_addr_local[1] = 10; @@ -30,7 +39,6 @@ void main(void) while (1) // Forever { - byte buf[64]; //XXX byte i; //XXX byte len; @@ -76,8 +84,9 @@ void main(void) // Nuestro protocolo, por ahora un simple echo! len = udp_dgram_len - UDP_HEADER_SIZE; netdev_read_start(len); + leds_matrix_len = len; for (i = 0; i < len; ++i) - buf[i] = udp_read_byte(); + leds_matrix[i] = udp_read_byte(); netdev_read_end(); if (!udp_checksum_ok()) goto drop; @@ -92,7 +101,7 @@ void main(void) udp_write_dgram_header(); netdev_write_start(len); for (i = 0; i < len; ++i) - udp_write_byte(buf[i]); + udp_write_byte(leds_matrix[i]); netdev_write_end(); udp_write_checksum(ETH_HEADER_SIZE+IP_HEADER_SIZE); netdev_send_end(ETH_HEADER_SIZE+IP_HEADER_SIZE+udp_dgram_len);