You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写C代码实现阶跃信号延迟0.5毫秒步长时间的需求

C代码实现阶跃信号0.5毫秒延迟

离线数组处理版本

如果你的信号是预先存储的离散数组(比如测试用例中的test_input),可以通过数组移位实现延迟。根据你的示例,输出数组的第i位对应输入数组的第i-1位,输出首位固定为0,完全匹配你给出的输入输出对应关系。

#include <stdio.h>
#include <string.h>

#define SIGNAL_LEN 10

void delay_step_signal(const int input[], int output[], int len) {
    // 初始化输出数组,首位为0,其余先置0
    memset(output, 0, sizeof(int) * len);
    
    // 实现信号向后移位一位(对应0.5毫秒步长延迟)
    for (int i = 1; i < len; i++) {
        output[i] = input[i-1];
    }
}

int main() {
    int test_input[SIGNAL_LEN] = {0, 1, 1, 1, 1, 1, 1, 0, 0, 0};
    int test_output[SIGNAL_LEN] = {0};
    
    delay_step_signal(test_input, test_output, SIGNAL_LEN);
    
    // 打印输入输出结果
    printf("输入信号: ");
    for (int i = 0; i < SIGNAL_LEN; i++) printf("%d ", test_input[i]);
    printf("\n输出信号: ");
    for (int i = 0; i < SIGNAL_LEN; i++) printf("%d ", test_output[i]);
    printf("\n");
    
    return 0;
}

编译运行后输出结果:

输入信号: 0 1 1 1 1 1 1 0 0 0 
输出信号: 0 0 1 1 1 1 1 1 0 0 

实时信号处理版本

如果是在嵌入式场景中处理实时阶跃信号(需要精确0.5毫秒延迟),可以结合定时器中断与状态缓存实现。以下是基于STM32平台的示例(其他平台可调整定时器配置逻辑):

#include "stm32f1xx_hal.h"

// 缓存上一次采样的输入信号值
static int last_input = 0;
// 输出信号,初始值设为0(匹配示例初始状态)
static int output_signal = 0;
// 定时器句柄(需预先配置为0.5毫秒触发一次中断)
TIM_HandleTypeDef htim2;

// 定时器中断回调,每0.5毫秒执行一次
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
    if (htim->Instance == TIM2) {
        // 更新输出为上一次采样的输入值,实现延迟
        output_signal = last_input;
        // 采样当前输入信号(假设输入接PA0引脚)
        last_input = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) ? 1 : 0;
    }
}

int main(void) {
    // 初始化HAL库、GPIO、定时器
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_TIM2_Init();
    
    // 启动定时器中断
    HAL_TIM_Base_Start_IT(&htim2);
    
    while (1) {
        // 将输出信号写入PA1引脚(假设输出接此引脚)
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, output_signal ? GPIO_PIN_SET : GPIO_PIN_RESET);
    }
}

说明

  • 离线版本适用于已获取的离散信号数据,通过数组移位直接实现步长延迟。
  • 实时版本通过定时器精确控制0.5毫秒的采样间隔,每次中断时用缓存的前一次输入值更新输出,实现连续信号的延迟。

内容的提问来源于stack exchange,提问作者Hiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 09:02:15