This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CPU-Timer 旗標問題?

A:用哪颗芯片:TMS320F28027

B:硬件环境:

1. CCS5  Version: 5.2.0.00057 

2.  F28027 Piccolo Experimenter Kit:TMDSDOCK28027 

3. OS:XP SP3, CPU3.3 GHz , 3G RAM

4. compiler file path:C:\ti\HVLLC

3、请说明您处于开发设计的哪个阶段?

C:研究階段

D: 問題如下,看不懂controlsuit 範例HVLLC 裡的main.c其中一段程式(有註解的地方),

     1. Cputimer0Regs.TCR.bit.TIF 的初始值從那來的,我找完所以專案內容也沒看到?

     2. 這段程式是否是指當Cputimer0Regs.TCR.bit.TIF==1時,CPU-Timer會開始減少計數器到0,然後再將putimer0Regs.TCR.bit.TIF 的bit設為0

main{

.....

    void A0(void)

    {

         if(Cputimer0Regs.TCR.bit.TIF==1)              // if  TIF==1 ,CPU Timer會減到0

           {    Cputimer0Regs.TCR.bit.TIF=1;            //  if  TIF=1 ,清除中斷旗標, putimer0Regs.TCR.bit.TIF 的bit設為0

                 (*A_Task_Ptr)();

                 VTimer0[0]++;

           }

       Alpha_State_Ptr = &B0;

}

  • D: 問題如下,看不懂controlsuit 範例HVLLC 裡的main.c其中一段程式(有註解的地方),

         1. Cputimer0Regs.TCR.bit.TIF 的初始值從那來的,我找完所以專案內容也沒看到?:

    答:可以参考SPRUFN3D,TI官网有下载,这个寄存器初始默认值是0

         2. 這段程式是否是指當Cputimer0Regs.TCR.bit.TIF==1時,CPU-Timer會開始減少計數器到0,然後再將putimer0Regs.TCR.bit.TIF 的bit設為0

    main{

    .....

        void A0(void)

        {

             if(Cputimer0Regs.TCR.bit.TIF==1)              // if  TIF==1 ,CPU Timer會減到0

               {    Cputimer0Regs.TCR.bit.TIF=1;            //  if  TIF=1 ,清除中斷旗標, 將putimer0Regs.TCR.bit.TIF 的bit設為0

                     (*A_Task_Ptr)();

                     VTimer0[0]++;

               }

           Alpha_State_Ptr = &B0;

    }

    答:这段程序的意思是CPU Timer0的计数减到0时,就再给TIF赋值,清这个标志位。然后运行A_Task_Ptr

  • 你的意思是說當DSP開始工作時,TIF的初始值為0,而CPUTimer會開始計數減到0,當計數到0時,TIF會設定為1,因為TIF=1(Cputimer0Regs.TCR.bit.TIF=1),所以暫存器TIF會清除為0,然後執行A_Task_Ptr,之後CPUTimer再重新計數到0....重覆執行…,這樣的解讀正確嗎?

  • 正确,这样就可以定时去执行一些在这个任务里的函式。