0
void TimerFunction()
{
TIMSK=(1<<TOIE0);
TCNT0=0x00;
TCCR0 |= (0<<CS02) | (1<<CS00) | (0<<CS01);
}

//##############################################################################
ISR(TIMER0_OVF_vect)
{
    // process the timer0 overflow here
  countClock ++;
  count++;
  delay++;
//some extra code 
}

それから

void main()
{
 //someCode
 TimerFunction();
}

しかし、それは私にとってはうまくいかないので、タイマー0とその割り込みサービスルーチンを開始する正しい方法ですか??

4

3 に答える 3

0

SREG.SREG_I = 1 を使用します。グローバル割り込みを有効にする

于 2015-10-06T17:16:39.810 に答える
0

一目であなたが恋しいと言うだろう

sei();  // set global interrupt flag

これが範囲//someCode外の場合 ... いずれにせよ、すべての特定の割り込みソース (タイマー、USART など) を初期化した後にのみ、グローバル割り込み有効化フラグをオンにすることをお勧めします。

于 2013-08-02T15:39:26.967 に答える