关于系统时钟节拍定时器的设置
#defineCPU_CLK_FREQ 8000000#define OS_TICKS_PER_SEC 100
函数如下:
staticvoidBSP_InitTickISR (void)
{
INT32Unum;
INT32Udenom;
TCCR0= 0x0E; /* Set TIMER0 prescaler to CTC Mode, CLK/256 */
TCNT0= 0; /* Start TCNT at 0 for a new cycle */
num = (INT32U)CPU_CLK_FREQ;
denom= 2 * 256 * (INT32U)OS_TICKS_PER_SEC;
OCR0 = (INT8U)((2 * num / denom + 1) / 2 - 1);
TIFR|= 0x02; /* ClearTIMER0 compare Interrupt Flag */
TIMSK |= 0x02; /* Enable TIMER0 compare Interrupt */
}
这样设置的时钟的滴答节拍是10ms吗?是怎么算的啊. ATmega128的T0为8位定时计数器在256分频的时候最大计数时间才8.16ms怎么能做到10ms? 。。。
页:
[1]