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

2020-02-19 20:59发布

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

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


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

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

  5. #define FTM_MOD_INIT        (20000-1)                /*!< MOD inite value */  为何MOD初值设为20000-1?
复制代码


  1. if(FTM_PWM_HIGHTRUEPULSE == u8PWMEdgeSelect)

  2. /* Configure timers PWM High True Pulses */
  3.         for(i=0; i<channels; i++)
  4.         {
  5.             pFTM->CONTROLS[i].CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;  
  6.             pFTM->CONTROLS[i].CnV  = FTM_C0V_INIT + i*100;    //为何CnV按通道赋的初值不同?
  7.         }
复制代码


  1. 这初始化方式诡异的。为何要引入channels?
  2.         if (FTM0 == pFTM)
  3.     {
  4.         channels = 6;
  5.         SIM->SCGC6 |= SIM_SCGC6_FTM0_MASK;
  6.     }
复制代码


  1. /* setup call back function for interrupt */
  2.     FTM_SetCallback(FTM0, FTM0_Task);  //ISR是怎么调用的?
复制代码



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

TWR-KV10Z32的链接,点这里
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
reflecter
1楼-- · 2020-02-19 22:14
各位FSL大哥去了慕尼黑展主持去了?
帮顶,呵呵~
FSL_TICS_ZP
2楼-- · 2020-02-19 23:17
 精彩回答 2  元偷偷看……
reflecter
3楼-- · 2020-02-20 04:21
FSL_TICS_ZP 发表于 2015-3-18 17:15
代码跑起来现象是否正确呢?

Debug下来,时间设置都是对的
晚些时候,我将完整代码段发上来,再请您看看
liujinyi016
4楼-- · 2020-02-20 09:52
是不是不完善呢?对这手册看看,那个channels确实诡异,是为了多条时钟指令?
ccrt
5楼-- · 2020-02-20 10:19
jinyi7016 发表于 2015-3-19 21:57
是不是不完善呢?对这手册看看,那个channels确实诡异,是为了多条时钟指令? ...

感觉像是做个标记,方便程序选时钟?
FSL_TICS_ZP
6楼-- · 2020-02-20 11:26
非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.

一周热门 更多>