summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--digital/io-hub/src/apbirthday/Makefile2
-rw-r--r--digital/io-hub/src/apbirthday/hardware.hh23
-rw-r--r--digital/io-hub/src/apbirthday/hardware.host.cc30
-rw-r--r--digital/io-hub/src/apbirthday/hardware.stm32.cc24
4 files changed, 76 insertions, 3 deletions
diff --git a/digital/io-hub/src/apbirthday/Makefile b/digital/io-hub/src/apbirthday/Makefile
index 6475a114..cc32c783 100644
--- a/digital/io-hub/src/apbirthday/Makefile
+++ b/digital/io-hub/src/apbirthday/Makefile
@@ -4,7 +4,7 @@ TARGETS = host stm32f4
PROGS = apbirthday
apbirthday_SOURCES = main.cc robot.cc hardware.host.cc hardware.stm32.cc
-MODULES = hal/uart hal/usb base/proto
+MODULES = hal/gpio hal/uart hal/usb base/proto
include $(BASE)/build/top.mk
diff --git a/digital/io-hub/src/apbirthday/hardware.hh b/digital/io-hub/src/apbirthday/hardware.hh
index 89b162a2..ae60afaa 100644
--- a/digital/io-hub/src/apbirthday/hardware.hh
+++ b/digital/io-hub/src/apbirthday/hardware.hh
@@ -25,6 +25,7 @@
// }}}
#include "ucoolib/hal/uart/uart.hh"
+#include "ucoolib/hal/gpio/gpio.hh"
#ifdef TARGET_stm32
# include "ucoolib/hal/usb/usb.hh"
#else
@@ -55,6 +56,28 @@ struct Hardware
#else
ucoo::HostStream usb;
#endif
+ ucoo::Gpio
+ raw_jack,
+ ihm_color,
+ ihm_strat,
+ ihm_robot_nb,
+ ihm_lol,
+ ihm_emerg_stop;
+ ucoo::Gpio
+ glass_contact;
+ ucoo::Gpio
+ cherry_bad_out, cherry_bad_in,
+ cherry_plate_up, cherry_plate_down,
+ cherry_plate_clamp,
+ cake_arm_out, cake_arm_in,
+ cake_push_far_out, cake_push_far_in,
+ cake_push_near_out, cake_push_near_in,
+ glass_lower_clamp_close, glass_lower_clamp_open,
+ glass_upper_clamp_close, glass_upper_clamp_open,
+ glass_upper_clamp_up, glass_upper_clamp_down,
+ gift_out, gift_in,
+ ballon_funny_action,
+ pneum_open;
Hardware ();
// Wait until next cycle.
void wait ();
diff --git a/digital/io-hub/src/apbirthday/hardware.host.cc b/digital/io-hub/src/apbirthday/hardware.host.cc
index 9e844be2..3eee4294 100644
--- a/digital/io-hub/src/apbirthday/hardware.host.cc
+++ b/digital/io-hub/src/apbirthday/hardware.host.cc
@@ -30,7 +30,35 @@ HardwareHost::HardwareHost ()
}
Hardware::Hardware ()
- : dev_uart (), zb_uart ("zb_uart"), usb ("usb")
+ : dev_uart (), zb_uart ("zb_uart"), usb ("usb"),
+ raw_jack (host, "raw_jack"),
+ ihm_color (host, "ihm_color"),
+ ihm_strat (host, "ihm_strat"),
+ ihm_robot_nb (host, "ihm_robot_nb"),
+ ihm_lol (host, "ihm_lol"),
+ ihm_emerg_stop (host, "ihm_emerg_stop"),
+ glass_contact (host, "glass_contact"),
+ cherry_bad_out (host, "cherry_bad_out"),
+ cherry_bad_in (host, "cherry_bad_in"),
+ cherry_plate_up (host, "cherry_plate_up"),
+ cherry_plate_down (host, "cherry_plate_down"),
+ cherry_plate_clamp (host, "cherry_plate_clamp"),
+ cake_arm_out (host, "cake_arm_out"),
+ cake_arm_in (host, "cake_arm_in"),
+ cake_push_far_out (host, "cake_push_far_out"),
+ cake_push_far_in (host, "cake_push_far_in"),
+ cake_push_near_out (host, "cake_push_near_out"),
+ cake_push_near_in (host, "cake_push_near_in"),
+ glass_lower_clamp_close (host, "glass_lower_clamp_close"),
+ glass_lower_clamp_open (host, "glass_lower_clamp_open"),
+ glass_upper_clamp_close (host, "glass_upper_clamp_close"),
+ glass_upper_clamp_open (host, "glass_upper_clamp_open"),
+ glass_upper_clamp_up (host, "glass_upper_clamp_up"),
+ glass_upper_clamp_down (host, "glass_upper_clamp_down"),
+ gift_out (host, "gift_out"),
+ gift_in (host, "gift_in"),
+ ballon_funny_action (host, "ballon_funny_action"),
+ pneum_open (host, "pneum_open")
{
dev_uart.block (false);
zb_uart.block (false);
diff --git a/digital/io-hub/src/apbirthday/hardware.stm32.cc b/digital/io-hub/src/apbirthday/hardware.stm32.cc
index 2adf638c..9bc7984e 100644
--- a/digital/io-hub/src/apbirthday/hardware.stm32.cc
+++ b/digital/io-hub/src/apbirthday/hardware.stm32.cc
@@ -29,10 +29,32 @@
Hardware::Hardware ()
: dev_uart (4), zb_uart (2),
- usb_control ("APBTeam", "APBirthday"), usb (usb_control, 0)
+ usb_control ("APBTeam", "APBirthday"), usb (usb_control, 0),
+ raw_jack (GPIOD, 12),
+ ihm_color (GPIOD, 14),
+ ihm_strat (GPIOD, 13),
+ ihm_robot_nb (GPIOD, 15),
+ ihm_lol (GPIOD, 11),
+ ihm_emerg_stop (GPIOC, 6),
+ glass_contact (GPIOC, 13),
+ cherry_bad_out (GPIOE, 0), cherry_bad_in (GPIOE, 1),
+ cherry_plate_up (GPIOE, 2), cherry_plate_down (GPIOE, 3),
+ cherry_plate_clamp (GPIOE, 4),
+ cake_arm_out (GPIOB, 3), cake_arm_in (GPIOB, 4),
+ cake_push_far_out (GPIOD, 7), cake_push_far_in (GPIOB, 5),
+ cake_push_near_out (GPIOD, 6), cake_push_near_in (GPIOB, 6),
+ glass_lower_clamp_close (GPIOA, 15), glass_lower_clamp_open (GPIOA, 10),
+ glass_upper_clamp_close (GPIOD, 0), glass_upper_clamp_open (GPIOD, 1),
+ glass_upper_clamp_up (GPIOD, 3), glass_upper_clamp_down (GPIOC, 10),
+ gift_out (GPIOD, 4), gift_in (GPIOC, 11),
+ ballon_funny_action (GPIOB, 7),
+ pneum_open (GPIOD, 5)
{
+ rcc_peripheral_enable_clock (&RCC_AHB1ENR, RCC_AHB1ENR_IOPAEN);
+ rcc_peripheral_enable_clock (&RCC_AHB1ENR, RCC_AHB1ENR_IOPBEN);
rcc_peripheral_enable_clock (&RCC_AHB1ENR, RCC_AHB1ENR_IOPCEN);
rcc_peripheral_enable_clock (&RCC_AHB1ENR, RCC_AHB1ENR_IOPDEN);
+ rcc_peripheral_enable_clock (&RCC_AHB1ENR, RCC_AHB1ENR_IOPEEN);
// dev_uart
gpio_mode_setup (GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO12);
gpio_mode_setup (GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO2);