请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
您好!
我尝试在不使用 CSL 的情况下使用 C5515 eZdsp 板中的计时器(Timer1)。
我已定义:
timers.h
//定义定时器寄存器(Timer1) #define TCR1 *(ioport volatile unsigned *)(0x1850) #define T1PRD1 *(ioport volatile unsigned *)(0x1852) #define T1PRD2 *(ioport volatile unsigned *)(0x1853) #define T1CNT1 *(ioport volatile unsigned *)(0x1854) #define T1CNT2 *(ioport volatile unsigned *)(0x1855) #define IERT1 *(ioport volatile unsigned *)(0x1816) #define TIAFR *(ioport volatile unsigned *)(0x1C14) void init_timer (void); void start_timer (void); void stop_timer (void);
定时器.c
void init_timer(){ TCR1 = 0x8000; // PRD 1秒 Con CPU a 100 MHz T1PRD1 = 0x86A0;//lsw T1PRD2 = 0x000F;//MSW } void start_timer(){ TCR1 = 0x8001; } void stop_timer (void){ TCR1 = 0x8000; }
我的主代码的重要部分:
(笑声)
init_timer();
start_timer();
while (1);
...
(笑声)
中断空 Timer_ISR (空){
printf ("\n 中断\n");
}
我在 vector.asm 中定义了 Timer_ISR、如下所示:
全局_定时器_ISR... (笑声) .sect "vector" .align 256... (笑声) TINT1:.ivec _Timer_ISR;计时器#0/软件中断#4
100MHz 时的 PLL
永远不会调用我的 ISR Timer_ISR。
有什么建议吗?
非常感谢
Paolo