wshini7316 发表于 2010-8-2 11:40:49

关于系统时钟节拍定时器的设置

#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吗?是怎么算的啊.

wshini7316 发表于 2010-8-2 13:48:53

ATmega128的T0为8位定时计数器在256分频的时候最大计数时间才8.16ms怎么能做到10ms?

hdu_M.E 发表于 2010-8-6 10:53:45

。。。
页: [1]
查看完整版本: 关于系统时钟节拍定时器的设置