From 13a89d73116a5fad57ca0fefbdf292e0978bf0ef Mon Sep 17 00:00:00 2001 From: helgie22 Date: Thu, 15 Oct 2026 15:29:08 +0000 Subject: [PATCH] =?UTF-8?q?ger=C3=B0i=20breytingar=20pi=20megin=20og=20?= =?UTF-8?q?=C3=BEarf=20a=C3=B0=20pusha=20fyrir=20t=C3=B6lvuna?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pi/can_up.sh | 6 +++--- platformio.ini | 6 ++++++ src/CAN_FRAME_TEST.c | 14 ++++++++------ src/main.c | 3 +++ zephyr/boards/nucleo_l432kc.overlay | 4 ++++ 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/pi/can_up.sh b/pi/can_up.sh index 12f989f..5381813 100755 --- a/pi/can_up.sh +++ b/pi/can_up.sh @@ -1,7 +1,7 @@ #!/bin/sh -# Brings up can0 at the same bitrate as the Nucleo (CAN_BITRATE in src/can_send_test.c). -# Usage: ./can_up.sh [bitrate] (default 250000) -BITRATE=${1:-250000} +# Brings up can0 at the same bitrate as the Nucleo (125000 in src/CAN_FRAME_TEST.c and src/can_send_test.c). +# Usage: ./can_up.sh [bitrate] (default 125000) +BITRATE=${1:-125000} sudo ip link set can0 down 2>/dev/null sudo ip link set can0 up type can bitrate "$BITRATE" diff --git a/platformio.ini b/platformio.ini index 75ecb08..e2183d5 100644 --- a/platformio.ini +++ b/platformio.ini @@ -27,3 +27,9 @@ upload_flags = [env:can_test] extends = env:nucleo_l432kc build_flags = -D CAN_SEND_TEST=1 + +; L4.4 example (src/CAN_FRAME_TEST.c) instead of the motor app. +; Build/upload: pio run -e can_frame_test -t upload +[env:can_frame_test] +extends = env:nucleo_l432kc +build_flags = -D CAN_FRAME_TEST=1 diff --git a/src/CAN_FRAME_TEST.c b/src/CAN_FRAME_TEST.c index b579da6..bca3a33 100644 --- a/src/CAN_FRAME_TEST.c +++ b/src/CAN_FRAME_TEST.c @@ -7,25 +7,27 @@ /* Devicetree node selected by zephyr,canbus in the overlay */ #define CANBUS_NODE DT_CHOSEN(zephyr_canbus) -int main(void) +// L4.4 example. Built only with the can_frame_test environment +// (-D CAN_FRAME_TEST=1); main() in main.c calls this function. +void can_frame_test_main(void) { const struct device *dev = DEVICE_DT_GET(CANBUS_NODE); if (!device_is_ready(dev)) { printk("CAN device not ready\n"); - return 0; + return; } int err = can_set_bitrate(dev, 125000); if (err != 0) { printk("Error setting CAN bitrate (err %d)\n", err); - return 0; + return; } err = can_start(dev); if (err != 0) { printk("Error starting CAN controller (err %d)\n", err); - return 0; + return; } struct can_frame frame = { @@ -41,7 +43,7 @@ int main(void) err = can_send(dev, &frame, K_MSEC(100), NULL, NULL); if (err != 0) { printk("Sending failed (err %d)\n", err); - return 0; + return; } } -} \ No newline at end of file +} diff --git a/src/main.c b/src/main.c index ecdd481..cc5c770 100644 --- a/src/main.c +++ b/src/main.c @@ -2,11 +2,14 @@ void motor_application_main(void); void can_send_test_main(void); +void can_frame_test_main(void); int main(void) { #if CAN_SEND_TEST can_send_test_main(); +#elif CAN_FRAME_TEST + can_frame_test_main(); #else motor_application_main(); #endif diff --git a/zephyr/boards/nucleo_l432kc.overlay b/zephyr/boards/nucleo_l432kc.overlay index e102e8e..c38471a 100644 --- a/zephyr/boards/nucleo_l432kc.overlay +++ b/zephyr/boards/nucleo_l432kc.overlay @@ -3,6 +3,10 @@ #include / { + chosen { + zephyr,canbus = &can1; + }; + aliases { encoder-c1 = &encoder_c1; encoder-c2 = &encoder_c2;