|
发表于 2007-12-3 13:35:21
|
显示全部楼层
明白许多了,谢谢阿伟,还有2个不明白,希望那天有时间看到帮指点下
1
/*----------------------------------------------*
* T0 100u定时中断
*----------------------------------------------*/
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
if (tHall != 0xff)tHall++;
if (tLap != 0xffff)tLap++;
}
如何计算的是100us,好象是设置内部8m的晶振(入门pdf资料设置熔丝位),timer0 256分频(TCCR0 = 0x04)
0xff*256/8==8192us??
2
OCR1AH = tLap;
OCR1AL = TCNT0; // 输了比较寄存器赋值
为什么这样写?什么意思?
我认为该这样
OCR1AH =0xff00&(tLap*100+TCNT0) OCR1AL =0x00ff&(tLap*100+TCNT0)
把单位都统一为us |
|