void initTIMER1(void) { // 禁止中断控制寄存器中的最低位,即开启总中断。 CSR &= ~1; asm(" NOP 2 "); // 设置Timer1模块的时钟源为CPU时钟,采用32位独立定时器12。 TIMER1_TGCR = 0x00000015; // 设置Timer1的计数值为0x00ffffff,周期值,改变其值的大小可以改变灯的亮灭频率。 TIMER1_PRD12 = 0x00ffffff; // 开启定时器1产生的中断,并将中断状态清零。 TIMER1_INTCLSTAT = 0x3; // 开启定时器1模块,并指定ADINT到中断6。 TIMER1_TRC = 0x00000080; INTmux1 = 0x0400; // 重置中断向量表到0xC00h。 ISTP = 0x80000000; ICR = 0xfff0; ISR = 0x0; // 清除等待的中断,并使能ADINT中断。 IER = 0xffff;}这个如何设置到ADINT中断4
时间: 2024-03-19 11:43:43 浏览: 113
N76E003串口0、串口1中断程序模板
4星 · 用户满意度95%
要将DSPC6747内部Timer1模块的中断重新分配给中断4(ADINT),可以使用以下代码:
```c
void initTIMER1(void) {
// 禁止中断控制寄存器中的最低位,即开启总中断。
CSR &= ~1;
asm(" NOP 2 ");
// 设置Timer1模块的时钟源为CPU时钟,采用32位独立定时器12。
TIMER1_TGCR = 0x00000015;
// 设置Timer1的计数值为0x00ffffff,周期值,改变其值的大小可以改变灯的亮灭频率。
TIMER1_PRD12 = 0x00ffffff;
// 开启定时器1产生的中断,并将中断状态清零。
TIMER1_INTCLSTAT = 0x3;
// 将INTMUX1寄存器的值设置为0x0401,将Timer1的中断分配给中断4(ADINT)。
INTmux1 = 0x0401;
// 重置中断向量表到0xC00h。
ISTP = 0x80000000;
ICR = 0xfff0;
ISR = 0x0;
// 清除等待的中断,并使能ADINT中断。
IER = 0xffff;
}
```
需要注意的是,在将Timer1的中断分配给中断4之前,需要将中断向量表重置到0xC00h,否则中断分配可能会失败。
阅读全文