summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src/servo/servo_generator.vhd
diff options
context:
space:
mode:
authorgalmes2004-04-28 18:29:26 +0000
committergalmes2004-04-28 18:29:26 +0000
commit130cf2e254043f28b912413f651a543d581e872e (patch)
tree163b0ab873d97c04cd47a79bd63d7c66bdf9d024 /2004/n/fpga/src/servo/servo_generator.vhd
parentbfa75e6dcbe6ce7c5b99e877bf7c02d76e81066c (diff)
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.
Diffstat (limited to '2004/n/fpga/src/servo/servo_generator.vhd')
-rw-r--r--2004/n/fpga/src/servo/servo_generator.vhd52
1 files changed, 52 insertions, 0 deletions
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;