#include "debug.h"
#include "leds.h"
+#include "reg51.h"
#include "netdev.h"
#include "eth.h"
#include "ip.h"
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;
while (1) // Forever
{
- byte buf[64]; //XXX
byte i; //XXX
byte len;
// 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;
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);