dsp28335定时器中断延时,定时器打开后关不上。麻烦各位帮看看,程序很短

dsp28335定时器中断延时,定时器打开后关不上。麻烦各位帮看看,程序很短,第1张

这可能跟你定时器设定的timer0执行频率有关,当count等于0时,while(count)还未得到执行就又被中断打断了

可以在timer0中写:if ( count ) count--试试,或者在timer0中把中断关了就是

第2个参数是给出当前cpu运行在多少MHz的主频下,你可以去看一下DSP2833x_CpuTimers.c这个程序中的这个函数定义,

一旦你初始化28335的时钟,那么主频就定下来了,像你这种调用使用150000和1500,首先cpu主频不会这样改变,其次,也不可能运行在150000MHz,28335运行在150MHz时,第2个参数写150即可,要修改的是第3个参数,看28335的数据手册,对定时器的寄存器 *** 作是有取值范围的,定时器不可能能给出100s的延时,顶多延时个二、三十秒,再多肯定计数溢出。

普通要延时100秒,可以让定时器输出1秒的延时,触发中断,中断中计算秒数,数到100秒再另外给出标志来,定时器是用于短时精准计时和延时的,一般是微秒级和毫秒级用得多些。定时器和RTC的用法是不一样的,用处也不一样。

比如第3个参数就是要给出延时多少微秒。下面是这个函数的说明:

//---------------------------------------------------------------------------

// ConfigCpuTimer:

//---------------------------------------------------------------------------

// This function initializes the selected timer to the period specified

// by the "Freq" and "Period" parameters. The "Freq" is entered as "MHz"

// and the period in "uSeconds". The timer is held in the stopped state

// after configuration.

//

void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11755464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存