iT邦幫忙

0

TI DSP宣告結構陣列(新手)

c dsp

你好,下面是我在在TI DSP裡宣告一個結構分別在主程式及副程式裡使用,以下分別是主程式及副程式裡的寫法,為何在主程式已經給定的值,從副程式裡印出會有非零值呢?
結構宣告:

typedef struct trackingOutput
{
    uint16_t     TrakcingCfg[32]; 
} trackingOnput_t;

主程式:

int32_t main(void)
{
    int32_t errCode,ik , tk;

    trackingOnput_t trackingOutput;

    for(tk = 0; tk < 32; tk++)
    {
        trackingOutput.TrakcingCfg[tk] = 0;
    }
    
    以下省略…
    
    /* Start BIOS */
    BIOS_start();

    return 0;
}

副程式:

void populateOutputs(MmwDemo_DSS_DataPathObj *obj)
{
    uint32_t ik,jk,tk;
    trackingOnput_t trackingOutput;

    System_printf("TrakcingCfg[0]= %d \n",trackingOutput.TrakcingCfg[0] );
    System_printf("TrakcingCfg[1]= %d \n",trackingOutput.TrakcingCfg[1] );
    System_printf("TrakcingCfg[2]= %d \n",trackingOutput.TrakcingCfg[2] );
    System_printf("TrakcingCfg[3]= %d \n",trackingOutput.TrakcingCfg[3] );
    System_printf("TrakcingCfg[4]= %d \n",trackingOutput.TrakcingCfg[4] );
    System_printf("TrakcingCfg[5]= %d \n",trackingOutput.TrakcingCfg[5] );
    System_printf("TrakcingCfg[6]= %d \n",trackingOutput.TrakcingCfg[6] );
    System_printf("TrakcingCfg[7]= %d \n",trackingOutput.TrakcingCfg[7] );
    System_printf("TrakcingCfg[8]= %d \n",trackingOutput.TrakcingCfg[8] );
    System_printf("TrakcingCfg[9]= %d \n",trackingOutput.TrakcingCfg[9] );
    System_printf("TrakcingCfg[10]= %d \n",trackingOutput.TrakcingCfg[10] );
    System_printf("TrakcingCfg[11]= %d \n",trackingOutput.TrakcingCfg[11] );
  

TrakcingCfg[0]= 0
TrakcingCfg[1]= 0
TrakcingCfg[2]= 32
TrakcingCfg[3]= 0
TrakcingCfg[4]= 44
TrakcingCfg[5]= 8
TrakcingCfg[6]= 232
TrakcingCfg[7]= 1922
TrakcingCfg[8]= 2478
TrakcingCfg[9]= 3873
TrakcingCfg[10]= 9
TrakcingCfg[11]= 0

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-09-07 10:31:58

因為在主程式的 trackingOutput 和副程式裡的 trackingOutput 不是同一個陣列變數

建議你最好靜下心來
花點時間
先看完這篇 C 語言教學
再來寫程式也不遲

我要發表回答

立即登入回答