TI中文支持网
TI专业的中文技术问题搜集分享网站

TIMER_setPreScaler问题

C2000 launchpad CCS v5

运行Example_F2802xCpuTimer例程

例程中都未对定时器进行分频

但我把例程中分频系数改为非零值后,并未得到分频的效果

调试窗口截图如下:

TIMER0TPR与TIMER0TPRH值仍为0

timer.c中TIMER_setPreScale定义如下:

void TIMER_setPreScaler(TIMER_Handle timerHandle, 

const uint16_t preScaler)
{
TIMER_Obj *timer = (TIMER_Obj *)timerHandle;

// set the bits
timer->TPR |= ((uint32_t)(preScaler & 0xFF00) << 16) | ((uint32_t)(preScaler & 0x00FF) << 8);

return;
} // end of TIMER_setPreScaler() function

是否这个函数的移位值有误?

若preScaler=0x1111,则按函数定义

分频系数被写入PSCH和PSC,而不是TDDRH和TDDR。

例程中只include了timer.h文件而没有timer.c文件,如果我想修改timer.c文件中的TIMER_setPreScaler函数,应该怎么做?

谢谢

Yi Tian1:

回复 Eric Ma:

Eric,

您好。

在官方例程中,TIMER_setPreScaler函数是固化在driverlib.lib中的,也就是说调用时是错误的。

我怎样才能修改driverlib.lib文件?如何生成新的driverlib.lib文件?

谢谢

C2000 launchpad CCS v5

运行Example_F2802xCpuTimer例程

例程中都未对定时器进行分频

但我把例程中分频系数改为非零值后,并未得到分频的效果

调试窗口截图如下:

TIMER0TPR与TIMER0TPRH值仍为0

timer.c中TIMER_setPreScale定义如下:

void TIMER_setPreScaler(TIMER_Handle timerHandle, 

const uint16_t preScaler)
{
TIMER_Obj *timer = (TIMER_Obj *)timerHandle;

// set the bits
timer->TPR |= ((uint32_t)(preScaler & 0xFF00) << 16) | ((uint32_t)(preScaler & 0x00FF) << 8);

return;
} // end of TIMER_setPreScaler() function

是否这个函数的移位值有误?

若preScaler=0x1111,则按函数定义

分频系数被写入PSCH和PSC,而不是TDDRH和TDDR。

例程中只include了timer.h文件而没有timer.c文件,如果我想修改timer.c文件中的TIMER_setPreScaler函数,应该怎么做?

谢谢

Eric Ma:

回复 Yi Tian1:

Yi Tian,

我觉得你不用麻烦去修改库文件,直接自己编一个类似的函数,在你的源文件编就行了,然后使用该函数就好了。

Eric

C2000 launchpad CCS v5

运行Example_F2802xCpuTimer例程

例程中都未对定时器进行分频

但我把例程中分频系数改为非零值后,并未得到分频的效果

调试窗口截图如下:

TIMER0TPR与TIMER0TPRH值仍为0

timer.c中TIMER_setPreScale定义如下:

void TIMER_setPreScaler(TIMER_Handle timerHandle, 

const uint16_t preScaler)
{
TIMER_Obj *timer = (TIMER_Obj *)timerHandle;

// set the bits
timer->TPR |= ((uint32_t)(preScaler & 0xFF00) << 16) | ((uint32_t)(preScaler & 0x00FF) << 8);

return;
} // end of TIMER_setPreScaler() function

是否这个函数的移位值有误?

若preScaler=0x1111,则按函数定义

分频系数被写入PSCH和PSC,而不是TDDRH和TDDR。

例程中只include了timer.h文件而没有timer.c文件,如果我想修改timer.c文件中的TIMER_setPreScaler函数,应该怎么做?

谢谢

Yi Tian1:

回复 Eric Ma:

好的 谢谢您

赞(0)
未经允许不得转载:TI中文支持网 » TIMER_setPreScaler问题
分享到: 更多 (0)