diff --git a/c/prog.c b/c/prog.c index 80bc396..277e633 100644 --- a/c/prog.c +++ b/c/prog.c @@ -24,7 +24,8 @@ #define MY_DEST_MAC5 0x00 #define DEFAULT_IF "enp5s0" -#define BUF_SIZ 1024 +#define BUF_SIZ 1500 +#define LED_CNT 360 int main(int argc, char *argv[]) { @@ -84,240 +85,28 @@ int main(int argc, char *argv[]) /* Packet data */ if (mode == 0) { + for (i = 0; i < LED_CNT; i++) { + switch (i%3) { + case 0: + sendbuf[tx_len++] = 0xff; + sendbuf[tx_len++] = 0x00; + sendbuf[tx_len++] = 0x00; +break; +case 1: + sendbuf[tx_len++] = 0x00; sendbuf[tx_len++] = 0xff; sendbuf[tx_len++] = 0x00; +break; +case 2: + sendbuf[tx_len++] = 0x00; sendbuf[tx_len++] = 0x00; + sendbuf[tx_len++] = 0xff; +break; + } + } - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; - sendbuf[tx_len++] = 0x00; - - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0x00; - sendbuf[tx_len++] = 0xff; } else if (mode > 0 && mode < 4) { - for (i = 0; i< 60; i++) { + for (i = 0; i< LED_CNT; i++) { switch (mode) { case 1: sendbuf[tx_len++] = 0xff; @@ -337,13 +126,13 @@ int main(int argc, char *argv[]) } } } else if (mode == 4) { - for (i = 0; i< 3*60; i++) { + for (i = 0; i< 3*LED_CNT; i++) { sendbuf[tx_len++] = 0x00; } } else if (mode == 5) { - for (i = 0; i< 3*60; i++) { + for (i = 0; i< 3*LED_CNT; i++) { sendbuf[tx_len++] = 0xff; } } else if (mode == 6) { @@ -351,7 +140,7 @@ sendbuf[tx_len++] = 0xff; r = (unsigned char) atoi(argv[2]); g = (unsigned char) atoi(argv[3]); b = (unsigned char) atoi(argv[4]); - for (i = 0; i< 60; i++) { + for (i = 0; i< LED_CNT; i++) { sendbuf[tx_len++] = r; sendbuf[tx_len++] = g; sendbuf[tx_len++] = b; diff --git a/top.vhd b/top.vhd index ea9255a..5fec249 100644 --- a/top.vhd +++ b/top.vhd @@ -6,7 +6,7 @@ -- Author : Mario Hüttel -- Company : -- Created : 2018-04-05 --- Last update: 2018-04-07 +-- Last update: 2018-04-13 -- Platform : -- Standard : VHDL'93/02 ------------------------------------------------------------------------------- @@ -146,7 +146,7 @@ begin -- architecture RTL STD_FIFO_1 : entity work.STD_FIFO generic map ( DATA_WIDTH => 8, - FIFO_DEPTH => 256) + FIFO_DEPTH => 360*3) port map ( CLK => clk, RST => fifo_rst,