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

TMS320C5505–定时器1设置

尊敬的TI工程师:

      您好,我这边有一个DSP-C5505的板子,根据例程的timer0的代码,我修改了hGpt = GPT_open (GPT_0, &gptObj, &status);为 hGpt = GPT_open (GPT_1, &gptObj, &status);//我放了个断点到中断函数里,但是一直进不了中断。我是不是还有修改其他的地方?

      下编程定时器0是可以实现的,程序正常运行,现在改了个定时器1,就不行了。程序如下:

   

Timer0_int()

{

CSL_Status status;
CSL_Config hwConfig;
CSL_GptObj gptObj;
CSL_Handle hGpt;

/* Open the CSL GPT module */
hGpt = GPT_open (GPT_1, &gptObj, &status);//----修改此处--GPT_0 改为 GPT_1
/* Reset the GPT module */
status = GPT_reset(hGpt);
IRQ_clear(TINT_EVENT);

//Disable interrupt
IRQ_globalDisable();
/* Initialize Interrupt Vector table */
IRQ_setVecs((Uint32)(&VECSTART));
IRQ_plug(TINT_EVENT,&Timer_isr);
IRQ_enable(TINT_EVENT);

/* Timer interval 0.5sec (2Hz)*/
hwConfig.autoLoad = GPT_AUTO_ENABLE;
hwConfig.ctrlTim = GPT_TIMER_ENABLE;
hwConfig.preScaleDiv = GPT_PRE_SC_DIV_11; // Pre scale Divide input clock by 4096
// 98.304M/4096 = 24K hwConfig.prdLow = 0x2EE0;  ////24K/12K = 2Hz (12K = 0x2EE0)
hwConfig.prdHigh = 0x0000;
/* Configure Timer0 */
status = GPT_config(hGpt, &hwConfig);
IRQ_globalEnable();
/* Start timer */
GPT_start(hGpt);

Shine:

请在ccs里看一下TIAFR寄存器TIM1FLAG是否置1?

YUDONG WANG2:

回复 Shine:

1、我只是把hGpt = GPT_open (GPT_0, &gptObj, &status);改成了hGpt = GPT_open (GPT_1, &gptObj, &status);由于函数封装的原因,我看不到GPT_open()函数里边的设置。

2、您说的TIM1FLAG寄存器我找不到啊,在哪里设置的?下边附件的图片是截图的寄存器。

3、有设置定时器1的例程么?

YUDONG WANG2:

回复 Shine:

 你好,TIM1FLAG那个寄存器值为1.

YUDONG WANG2:

回复 Shine:

您好,上次的定时器问题解决了。现在我用GPIO模拟串口UART。想用GP22作为输出,但是这个IO口输出的速率很慢,10hz一下的输出方波的波形正常,让它以1Khz,它就成一条直线了,输出的全是高电平。我哪里设置错了?

CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_A16_MODE, MODE1);///* Disable CPU interrupt */
IRQ_globalDisable();/* Initialize Interrupt Vector table */
IRQ_setVecs((Uint32)(&VECSTART));/* Open GPIO module */
hGpio_GP22 = GPIO_open(&GpioObj_GP22,&status);GPIO_reset(hGpio_GP22);config.pinNum = CSL_GPIO_PIN22;
config.direction = CSL_GPIO_DIR_OUTPUT;
config.trigger = CSL_GPIO_TRIG_CLEAR_EDGE;
status = GPIO_configBit(hGpio_GP22,&config);void gpt1Isr(void)
{fTimer_01++;
if(fTimer_01%2 == 0)
{GPIO_write(hGpio_GP22,CSL_GPIO_PIN22,1);
}
else
{
GPIO_write(hGpio_GP22,CSL_GPIO_PIN22,0);}/* Clear Timer Interrupt Aggregation Flag Register (TIAFR) */
CSL_SYSCTRL_REGS->TIAFR = 0x02;printf("\r\nTimer1 ISR\r\n");
}

QIN YANG2:

你好,请问你有这个定时器的例程吗,请问是在哪里下载的呢? 

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C5505–定时器1设置
分享到: 更多 (0)