尊敬的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:
你好,请问你有这个定时器的例程吗,请问是在哪里下载的呢?