NUMBER123
04-07-2012, 12:49
سلام.من سيگنال حاصل از شفت را وصل کردم به پايه T1 که تعداد TCNT1 رو بدست بيارم
تو تايمر 2 هم زمان يک ثانيه رو ايجاد ميکنم
مثلا 4 مگ کلاکم باشه ميشه 245 (تقسيم بر 64 )
ولي درست جواب نميده چرا؟؟؟؟؟؟؟؟
[interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
TCNT1++;
i1++;
}
////////////////////////////////////////////////////////////////////////////////
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{ count++;
if (count== 245)
{
count= 0;
TCNT1=0;
}
}
تو main هم دارم
TCCR2=0x04;
TCNT2=0x00;
OCR2=0x00;
TCCR1A=0x00;
TCCR1B=0x07;
..........
TIMSK=0x44;
#asm("sei")
يه مشکل ديگه هم که دارم نميدونم بايد مقدار1 TCNT رو تو همون تابع اينتراپت 2 بخونم يا تو MAIN
:(
ممنون
تو تايمر 2 هم زمان يک ثانيه رو ايجاد ميکنم
مثلا 4 مگ کلاکم باشه ميشه 245 (تقسيم بر 64 )
ولي درست جواب نميده چرا؟؟؟؟؟؟؟؟
[interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
TCNT1++;
i1++;
}
////////////////////////////////////////////////////////////////////////////////
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{ count++;
if (count== 245)
{
count= 0;
TCNT1=0;
}
}
تو main هم دارم
TCCR2=0x04;
TCNT2=0x00;
OCR2=0x00;
TCCR1A=0x00;
TCCR1B=0x07;
..........
TIMSK=0x44;
#asm("sei")
يه مشکل ديگه هم که دارم نميدونم بايد مقدار1 TCNT رو تو همون تابع اينتراپت 2 بخونم يا تو MAIN
:(
ممنون