From 130cf2e254043f28b912413f651a543d581e872e Mon Sep 17 00:00:00 2001 From: galmes Date: Wed, 28 Apr 2004 18:29:26 +0000 Subject: servo : les fichiers du bloc servo qui marche trop de bombe de balle. Il faudra peut-être revoir les constantes à calibrer en fonction du servo. --- 2004/n/fpga/src/servo/servo_generator.vhd | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 2004/n/fpga/src/servo/servo_generator.vhd (limited to '2004/n/fpga/src/servo/servo_generator.vhd') diff --git a/2004/n/fpga/src/servo/servo_generator.vhd b/2004/n/fpga/src/servo/servo_generator.vhd new file mode 100644 index 0000000..278cbff --- /dev/null +++ b/2004/n/fpga/src/servo/servo_generator.vhd @@ -0,0 +1,52 @@ +------------------------------------------------------------------------------- +-- servo_generator.vhd +-- Eurobot 2004 : APB Team +-- Auteur : Fidèle GAFAN et Pierre-André Galmes + +-- TODO : reprendre les commentaires déjà faits ! + +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.std_logic_arith.all; + +use work.nono_const.all; +use work.servo_const.all; + +--ENTITE +entity servo_generator is + port ( + rst : in std_logic; + clk : in std_logic; + servo_in : in T_DOUBLE_OCTET; + servo_out : out std_logic + ); +end entity; + +--ARCHITECTURE +architecture RTL of servo_generator is + signal compt : T_DOUBLE_OCTET; + signal reg : T_DOUBLE_OCTET; +begin + + process(rst, clk) + begin + if (rst = '1') then + compt <= x"0000"; + reg <= x"0000"; + servo_out <= '0'; + elsif (clk'event and clk = '1') then + compt <= compt + x"0001"; + if (compt < reg) then + servo_out <= '1'; + else + servo_out <= '0'; + if (compt = SERVO_NB_CYCLE_20MS) then + compt <= x"0000"; + reg <= servo_in; + end if; + end if; + end if; + end process; + +end RTL; -- cgit v1.2.3