CpuTimer1.RegsAddr = &CpuTimer1Regs;
// CpuTimer2.RegsAddr = &CpuTimer2Regs;
// Initialize timer period to maximum:
CpuTimer1Regs.PRD.all = 0x752A;//0.5MS//0xEA54; //0xEA54*16.67ns=1ms
// CpuTimer2Regs.PRD.all = 0xFFFFFFFF;
//Timer1 Free Run
CpuTimer1Regs.TCR.bit.FREE = 1;
// Make sure timers are started:
CpuTimer1Regs.TCR.bit.TSS = 0;// CpuTimer2Regs.TCR.bit.TSS = 1; // Reload all counter register with period value:
CpuTimer1Regs.TCR.bit.TRB = 1;// CpuTimer2Regs.TCR.bit.TRB = 1; // Reset interrupt counters:
CpuTimer1.InterruptCount = 0;
// CpuTimer2.InterruptCount = 0;
}
我想问1:cpu_timer 怎么没有定时器工作模式设置寄存器
2:这段程序的初始化中,定时器被禁止中断使能了,整个项目程序确实没有定时器中断函数,所以不明白中断禁止了,整个定时器初始化在这还有什么作用。
bamboo wang:
CPU定时器0,1和2是完全一样的32位定时器,这些定时器带由可预先设定的周期和16位时钟预分频。此定时器由一个32位倒计数寄存器,此寄存器在就计数器达到0时生成一个中断。这个计数器的减量为预分频值设置所分频的CPU时钟速度的值,当此计数器达到0时,它自动重载入32位的周期值。
CPU定时器0为通用定时器并被连接至PIE块。CPU定时器1位通用定时器并连接值CPU的INT13.
CPUT定时器2为DSP/BIOS保留。它被连接至CPU的INT14。如果DSP/BIOS未被使用,CPU定时器2也可以称为通用定时器
CPU定时器2可由下列任一器件计时:
SYSCLKOUT(默认)
内部零引脚振荡器1(INTOSC1)
内部零引脚振荡器2(INTOSC2)
外部时钟源
CpuTimer1.RegsAddr = &CpuTimer1Regs;
// CpuTimer2.RegsAddr = &CpuTimer2Regs;
// Initialize timer period to maximum:
CpuTimer1Regs.PRD.all = 0x752A;//0.5MS//0xEA54; //0xEA54*16.67ns=1ms
// CpuTimer2Regs.PRD.all = 0xFFFFFFFF;
//Timer1 Free Run
CpuTimer1Regs.TCR.bit.FREE = 1;
// Make sure timers are started:
CpuTimer1Regs.TCR.bit.TSS = 0;// CpuTimer2Regs.TCR.bit.TSS = 1; // Reload all counter register with period value:
CpuTimer1Regs.TCR.bit.TRB = 1;// CpuTimer2Regs.TCR.bit.TRB = 1; // Reset interrupt counters:
CpuTimer1.InterruptCount = 0;
// CpuTimer2.InterruptCount = 0;
}
我想问1:cpu_timer 怎么没有定时器工作模式设置寄存器
2:这段程序的初始化中,定时器被禁止中断使能了,整个项目程序确实没有定时器中断函数,所以不明白中断禁止了,整个定时器初始化在这还有什么作用。
Eric Ma:
我想问1:cpu_timer 怎么没有定时器工作模式设置寄存器
2:这段程序的初始化中,定时器被禁止中断使能了,整个项目程序确实没有定时器中断函数,所以不明白中断禁止了,整个定时器初始化在这还有什么作用。
ERIC: 你想要什么工作模式设置?如增减设置? CPU 寄存器不支持这种。
定时器处理中断,还可以查询标志为。
Eric