对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的链接,点这里 各位FSL大哥去了慕尼黑展主持去了?
帮顶,呵呵~ 代码跑起来现象是否正确呢?
FSL_TICS_ZP 发表于 2015-3-18 17:15
代码跑起来现象是否正确呢?
Debug下来,时间设置都是对的
晚些时候,我将完整代码段发上来,再请您看看 是不是不完善呢?对这手册看看,那个channels确实诡异,是为了多条时钟指令? jinyi7016 发表于 2015-3-19 21:57
是不是不完善呢?对这手册看看,那个channels确实诡异,是为了多条时钟指令? ...
感觉像是做个标记,方便程序选时钟? 非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
页:
[1]