Ignore:
Timestamp:
Feb 7, 2025, 1:40:58 PM (3 months ago)
Author:
Zed
Message:

Modbus Master and Slave Hardware were tested.

Location:
ctrl/firmware/Main/CubeMX/Core/Src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • ctrl/firmware/Main/CubeMX/Core/Src/freertos.c

    r79 r83  
    2323#include "main.h"
    2424#include "cmsis_os.h"
     25#include "queue.h"
    2526
    2627/* Private includes ----------------------------------------------------------*/
    2728/* USER CODE BEGIN Includes */
    2829
    29 #include "stdio.h"
     30#include <stdio.h>
    3031
    3132#include "keys_task.h"
    3233#include "eth_task.h"
     34#include "mb_slave_task.h"
     35#include "beeper_task.h"
    3336
    3437/* USER CODE END Includes */
     
    4346/* USER CODE BEGIN PD */
    4447
    45 #define KEYS_TASK_STACK_DEPTH_WORDS                               (128U)
    46 #define ETH_TASK_STACK_DEPTH_WORDS                                (2048U)
     48#define KEYS_TASK_STACK_DEPTH_WORDS                                     (128U)
     49#define ETH_TASK_STACK_DEPTH_WORDS                                      (2048U)
     50#define MB_SLAVE_TASK_STACK_DEPTH_WORDS                         (1024U)
     51#define BEEPER_TASK_STACK_DEPTH_WORDS                           (128U)
    4752
    4853/* USER CODE END PD */
     
    5661/* USER CODE BEGIN Variables */
    5762
    58 static StackType_t keysTaskStackBuffer[KEYS_TASK_STACK_DEPTH_WORDS]                             __attribute__((section(".DTCM_RAM")));
    59 static StackType_t ethTaskStackBuffer[ETH_TASK_STACK_DEPTH_WORDS]                               __attribute__((section(".DTCM_RAM")));
     63static StackType_t keysTaskStackBuffer[KEYS_TASK_STACK_DEPTH_WORDS]                                             __attribute__((section(".DTCM_RAM")));
     64static StackType_t ethTaskStackBuffer[ETH_TASK_STACK_DEPTH_WORDS]                                               __attribute__((section(".DTCM_RAM")));
     65static StackType_t mbSlaveTaskStackBuffer[MB_SLAVE_TASK_STACK_DEPTH_WORDS]                              __attribute__((section(".DTCM_RAM")));
     66static StackType_t beeperTaskStackBuffer[BEEPER_TASK_STACK_DEPTH_WORDS]                                 __attribute__((section(".DTCM_RAM")));
     67static uint8_t beeperQueueStorageArea[BEEPER_QUEUE_SIZE * BEEPER_QUEUE_ITEM_SIZE]               __attribute__((section(".DTCM_RAM")));
     68
    6069static StaticTask_t keysTaskBuffer;
    6170static StaticTask_t ethTaskBuffer;
     71static StaticTask_t mbSlaveTaskBuffer;
     72static StaticTask_t beeperTaskBuffer;
     73static StaticQueue_t beeperQueueBuffer;
     74
    6275static const char* const keysTaskName = "ScanKeysTask";
    6376static const char* const ethTaskName = "EthTask";
     77static const char* const mbSlaveTaskName = "MBSlaveTask";
     78static const char* const beeperTaskName = "BeeperTask";
     79
     80
    6481
    6582/* USER CODE END Variables */
     
    133150
    134151  /* USER CODE BEGIN RTOS_QUEUES */
    135   /* add queues, ... */
     152
     153  beeperQueue = xQueueCreateStatic(BEEPER_QUEUE_SIZE, BEEPER_QUEUE_ITEM_SIZE, beeperQueueStorageArea, &beeperQueueBuffer);
     154  if (beeperQueue == NULL) printf("Cannot create Beeper Queue!\n");
     155
    136156  /* USER CODE END RTOS_QUEUES */
    137157
     
    148168  r = xTaskCreateStatic(ethTaskStart, ethTaskName, ETH_TASK_STACK_DEPTH_WORDS, NULL, 25, ethTaskStackBuffer, &ethTaskBuffer);
    149169  if (r == NULL) printf("Cannot create %s!\n", ethTaskName);
     170
     171  r = xTaskCreateStatic(mbSlaveTaskStart, mbSlaveTaskName, MB_SLAVE_TASK_STACK_DEPTH_WORDS, NULL, 25, mbSlaveTaskStackBuffer, &mbSlaveTaskBuffer);
     172  if (r == NULL) printf("Cannot create %s!\n", mbSlaveTaskName);
     173
     174  r = xTaskCreateStatic(beeperTaskStart, beeperTaskName, BEEPER_TASK_STACK_DEPTH_WORDS, NULL, 25, beeperTaskStackBuffer, &beeperTaskBuffer);
     175  if (r == NULL) printf("Cannot create %s!\n", beeperTaskName);
    150176
    151177  /* USER CODE END RTOS_THREADS */
     
    167193{
    168194  /* USER CODE BEGIN mainTaskStart */
     195
     196  UNUSED(argument);
     197
    169198  /* Infinite loop */
    170199  for(;;)
  • ctrl/firmware/Main/CubeMX/Core/Src/main.c

    r82 r83  
    125125  MX_GPIO_Init();
    126126  MX_DMA_Init();
    127   MX_MDMA_Init();
     127  //MX_MDMA_Init();
    128128  MX_RTC_Init();
    129129  MX_SPI4_Init();
  • ctrl/firmware/Main/CubeMX/Core/Src/sdmmc.c

    r75 r83  
    4646  hsd1.Init.BusWide = SDMMC_BUS_WIDE_4B;
    4747  hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_ENABLE;
    48   hsd1.Init.ClockDiv = 1;
     48  hsd1.Init.ClockDiv = 2;
    4949  /* USER CODE BEGIN SDMMC1_Init 2 */
    5050
  • ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c

    r82 r83  
    298298  /* USER CODE BEGIN USART2_IRQn 0 */
    299299
     300  extern modbus_t lb_mbData;
     301  MODBUS_UART_IRQHandler(&huart2, &lb_mbData);
     302  return;
     303
    300304  /* USER CODE END USART2_IRQn 0 */
    301305  HAL_UART_IRQHandler(&huart2);
     
    395399{
    396400  /* USER CODE BEGIN USART10_IRQn 0 */
    397   extern modbus_t lb_mbData;
    398   MODBUS_UART_IRQHandler(&huart10, &lb_mbData);
    399   return;
    400 
     401
     402  //extern modbus_t lb_mbData;
     403  //MODBUS_UART_IRQHandler(&huart10, &lb_mbData);
     404  //return;
    401405
    402406  /* USER CODE END USART10_IRQn 0 */
  • ctrl/firmware/Main/CubeMX/Core/Src/usart.c

    r81 r83  
    3838  /* USER CODE BEGIN USART2_Init 0 */
    3939
     40  // This USART is responsible for Modbus Slave operations
     41
    4042  /* USER CODE END USART2_Init 0 */
    4143
Note: See TracChangeset for help on using the changeset viewer.