CodeMonkey 发表于 2013-4-28 19:13:33

求助:定时器计时误差

看看时间偏差.



#include <avr/io.h>
#include <avr/interrupt.h>

int main(void)
{
        __asm__ __volatile__ ("sei" ::: "memory");
        DDRD = (1<<PD3);
        TCNT0 = 0;
        TIMSK |= (1<<TOIE0);
        TCCR0 = (1<<CS02)|(1<<CS00);
    while(1)
    {
    }
}

ISR(TIMER0_OVF_vect){
        TCNT0 = 0;
        PORTD ^= (1<<PD3);
}

NemoGu 发表于 2013-4-28 19:23:09

AVR定時器有CTC模式,可以由硬件翻轉IO
程序執行會有進/退中斷服務程序的壓棧/出棧操作等等

foxpro2005 发表于 2013-4-28 19:30:55

使用CTC模式,更加精确,使用比较匹配中断...

CodeMonkey 发表于 2013-4-28 21:01:35

NemoGu 发表于 2013-4-28 19:23 static/image/common/back.gif
AVR定時器有CTC模式,可以由硬件翻轉IO
程序執行會有進/退中斷服務程序的壓棧/出棧操作等等 ...

CTC也有误差,只是没那么大.

CodeMonkey 发表于 2013-4-28 21:01:58

NemoGu 发表于 2013-4-28 19:23 static/image/common/back.gif
AVR定時器有CTC模式,可以由硬件翻轉IO
程序執行會有進/退中斷服務程序的壓棧/出棧操作等等 ...

定时器1用来做相位修正PWM了,M8没那么多资源.

NemoGu 发表于 2013-4-28 22:41:54

使用外部晶振还是内部RC振荡器?

CodeMonkey 发表于 2013-4-30 19:38:57

NemoGu 发表于 2013-4-28 22:41 static/image/common/back.gif
使用外部晶振还是内部RC振荡器?

外部12MHz

NemoGu 发表于 2013-5-1 15:31:07

CodeMonkey 发表于 2013-4-30 19:38 static/image/common/back.gif
外部12MHz

CTC模式下 誤差是多少?
外部12MHz晶振的精度是多少?
页: [1]
查看完整版本: 求助:定时器计时误差