summaryrefslogtreecommitdiff
path: root/code/main/teensy_goalie
diff options
context:
space:
mode:
authorAbel Tim <git@abeltim.com>2025-06-12 10:28:13 +0200
committerAbel Tim <git@abeltim.com>2025-06-12 10:28:13 +0200
commitf6832123c23f394c3069bad6f8b19a896c705e51 (patch)
tree03301be92270c03498778d1ae0c5bc7f7f686891 /code/main/teensy_goalie
parent66a1669fd97feb4d026778c486e0db58baa0c687 (diff)
downloadrobotica-f6832123c23f394c3069bad6f8b19a896c705e51.tar.gz
robotica-f6832123c23f394c3069bad6f8b19a896c705e51.zip
recenltly removed three commit becouse it included files that shouldn't be included.
Did reset hard, localy unstaged commits, deleted files and recommited the good files. think this is all i did since, -changed extra PCB name to bave and _ instead of a space so i dont have to use "" -added button and led to teensy41 goaly overlay -started on PWM, not complete Abel Tim <git@abeltim.com>
Diffstat (limited to 'code/main/teensy_goalie')
-rw-r--r--code/main/teensy_goalie/CMakeLists.txt38
-rw-r--r--code/main/teensy_goalie/prj.conf9
-rw-r--r--code/main/teensy_goalie/src/main.c55
-rw-r--r--code/main/teensy_goalie/teensy41.overlay58
4 files changed, 117 insertions, 43 deletions
diff --git a/code/main/teensy_goalie/CMakeLists.txt b/code/main/teensy_goalie/CMakeLists.txt
new file mode 100644
index 0000000..27e5715
--- /dev/null
+++ b/code/main/teensy_goalie/CMakeLists.txt
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: Apache-2.0
+
+cmake_minimum_required(VERSION 3.20.0)
+find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
+project(
+ player
+ VERSION 1.0
+ DESCRIPTION "The code for the soccer player robot. https://github.com/mendelcollege-robotics/robotica"
+ LANGUAGES C
+)
+
+#[===[
+# Create a static library target named "my_lib"
+add_library(my_lib
+ STATIC
+ src/my_lib.c
+)
+target_include_directories(
+ my_lib
+ PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+)
+
+# Create an executable target with the same name as the project name
+add_executable(
+ ${PROJECT_NAME}
+ src/main.c
+)
+
+# Link the library to the executable. PRIVATE means that the library is not
+# exposed to targets that depend on this target.
+target_link_libraries(
+ ${PROJECT_NAME}
+ PRIVATE
+ my_lib
+)
+]===]
+target_sources(app PRIVATE src/main.c)
diff --git a/code/main/teensy_goalie/prj.conf b/code/main/teensy_goalie/prj.conf
new file mode 100644
index 0000000..8379fac
--- /dev/null
+++ b/code/main/teensy_goalie/prj.conf
@@ -0,0 +1,9 @@
+CONFIG_GPIO=y
+CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=y
+CONFIG_PRINTK=y
+CONFIG_SERIAL=y
+CONFIG_UART_INTERRUPT_DRIVEN=y
+CONFIG_PWM=y
+CONFIG_LOG=y
+CONFIG_LOG_MODE_IMMEDIATE=y
+CONFIG_PWM_LOG_LEVEL_DBG=y
diff --git a/code/main/teensy_goalie/src/main.c b/code/main/teensy_goalie/src/main.c
index f8aff35..137e898 100644
--- a/code/main/teensy_goalie/src/main.c
+++ b/code/main/teensy_goalie/src/main.c
@@ -1,48 +1,17 @@
-/*
- * Copyright (c) 2016 Intel Corporation
- *
- * SPDX-License-Identifier: Apache-2.0
- */
-
#include <stdio.h>
#include <zephyr/kernel.h>
+#include <zephyr/sys/printk.h>
+#include <zephyr/device.h>
+#include <zephyr/drivers/pwm.h>
+#include <zephyr/devicetree.h>
#include <zephyr/drivers/gpio.h>
-/* 1000 msec = 1 sec */
-#define SLEEP_TIME_MS 1000
-
-/* The devicetree node identifier for the "led0" alias. */
-#define LED0_NODE DT_ALIAS(led0)
-
-/*
- * A build error on this line means your board is unsupported.
- * See the sample documentation for information on how to fix this.
- */
-static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
-
-int main(void)
-{
- int ret;
- bool led_state = true;
-
- if (!gpio_is_ready_dt(&led)) {
- return 0;
- }
-
- ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
- if (ret < 0) {
- return 0;
- }
-
- while (1) {
- ret = gpio_pin_toggle_dt(&led);
- if (ret < 0) {
- return 0;
- }
+// Settings
+#define PWM_PERIOD_NS 20000000
+#define PWM_PULSE_WIDTH 1400000
+static const int32_t sleep_time_ms = 100;
+static const struct gpio_dt_spec btn = GPIO_DT_SPEC_GET(DT_ALIAS(powerswitch), gpios);
+static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(DT_ALIAS(redled), gpios);
- led_state = !led_state;
- printf("LED state: %s\n", led_state ? "ON" : "OFF");
- k_msleep(SLEEP_TIME_MS);
- }
- return 0;
-}
+#define LED0_NODE DT_ALIAS(redled)
+#define PWM_LED0 DT_ALIAS(en3a)
diff --git a/code/main/teensy_goalie/teensy41.overlay b/code/main/teensy_goalie/teensy41.overlay
new file mode 100644
index 0000000..3b023e3
--- /dev/null
+++ b/code/main/teensy_goalie/teensy41.overlay
@@ -0,0 +1,58 @@
+/*
+ *
+ * This is the overlay device tree file for the teensy 4.1 in the robosoccer mendelcollege robot.
+ *
+ * For more information on overlay files see
+ * https://docs.zephyrproject.org/latest/build/dts/howtos.html#set-devicetree-overlays
+ * https://www.digikey.be/en/maker/tutorials/2025/introduction-to-zephyr-part-4-devicetree-tutorial
+ *
+ */
+/ {
+ aliases {
+ powerswitch = &soft_power_switch;
+ redled = &red_led;
+ greenled = &green_led;
+ bueled = &blue_led;
+ en3a = &pwm_dev0;
+ };
+
+ buttons {
+ compatible = "gpio-keys";
+ debounce-interval-ms = <50>;
+ polling-mode;
+
+ soft_power_switch: d5 {
+ gpios = <&gpio4 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+ };
+ };
+ leds {
+ compatible = "gpio-leds";
+ red_led: red-led {
+ gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+ label = "LED Pin 34 --> RED";
+ };
+ green_led: green-led {
+ gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+ label = "LED Pin 33 --> GREEN";
+ };
+ blue_led: blue-led {
+ gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
+ label = "LED Pin 16 --> BLUE";
+ };
+ };
+ pwmdevs {
+ compatible = "imx-pwm";
+ pwm_dev0: pwm_dev_0 {
+ pwms = <&gpio2 10>;
+ };
+ };
+
+};
+&flexpwm1 {
+ status = "ok";
+ flexpwm1_pwm0: flexpwm1_pwm0 {
+ status = "ok";
+ };
+
+};
+