reflecter 发表于 2015-3-18 00:47:26

对TWR-KV10Z32_SC代码里几个不理解的地方

本帖最后由 reflecter 于 2015-3-18 00:56 编辑

各位飞友,近期我在啃KV10片子,读TWR-KV10Z32_SC的驱动函数及IAR FTM_EPWM_demo,发现了下述5个问题,特拎出来,烦请各位有空,帮答疑解惑~


ftm.c
void FTM_PWMInit(FTM_Type *pFTM, uint8_t u8PWMModeSelect, uint8_t u8PWMEdgeSelect)

pFTM->SC= 0x0;                                    /* disable counter */
        pFTM->MOD = FTM_MOD_INIT;

#define FTM_MOD_INIT        (20000-1)                /*!< MOD inite value */为何MOD初值设为20000-1?


if(FTM_PWM_HIGHTRUEPULSE == u8PWMEdgeSelect)

/* Configure timers PWM High True Pulses */
      for(i=0; i<channels; i++)
      {
            pFTM->CONTROLS.CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;
            pFTM->CONTROLS.CnV= FTM_C0V_INIT + i*100;    //为何CnV按通道赋的初值不同?
      }


这初始化方式诡异的。为何要引入channels?
        if (FTM0 == pFTM)
    {
      channels = 6;
      SIM->SCGC6 |= SIM_SCGC6_FTM0_MASK;
    }



/* setup call back function for interrupt */
    FTM_SetCallback(FTM0, FTM0_Task);//ISR是怎么调用的?



ftm.h里FTM_SetChannelValue函数,竟然只定义了if(FTM0 == pFTM)!

TWR-KV10Z32的链接,点这里

reflecter 发表于 2015-3-18 12:57:53

各位FSL大哥去了慕尼黑展主持去了?
帮顶,呵呵~

FSL_TICS_ZP 发表于 2015-3-18 17:15:01

代码跑起来现象是否正确呢?

reflecter 发表于 2015-3-18 21:19:44

FSL_TICS_ZP 发表于 2015-3-18 17:15
代码跑起来现象是否正确呢?

Debug下来,时间设置都是对的
晚些时候,我将完整代码段发上来,再请您看看

jinyi7016 发表于 2015-3-19 21:57:12

是不是不完善呢?对这手册看看,那个channels确实诡异,是为了多条时钟指令?

ccrt 发表于 2015-3-20 07:56:05

jinyi7016 发表于 2015-3-19 21:57
是不是不完善呢?对这手册看看,那个channels确实诡异,是为了多条时钟指令? ...

感觉像是做个标记,方便程序选时钟?

FSL_TICS_ZP 发表于 2015-4-8 14:15:43

非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
页: [1]
查看完整版本: 对TWR-KV10Z32_SC代码里几个不理解的地方