タイマ割り込みのプリスケーラをどのように設定しますか?

When creating a timer interrupt how can you chose the ratio of the timer interrupt? I know what part of my code is the prescaler but I don't know how to set it up as a 1:2 ratio or 1:8 ratio. The way I'm setting it now is by saying TCCR2B |= (1 << CS12); and I'm assuming that CS12 determines the ratio by shifting the bits over that number of times. Here is the code:

  noInterrupts();
  TCCR2A = 0;            
  TCCR2B = 0;            
  TCNT2 = 0;             
  OCR2A = TICKS - 1;    
  TIMSK2 = _BV(OCIE2A); 
  TCCR2B |= (1 << CS12); //What else can I put here?
  interrupts();

彼らが私が望む比率を決定できるように、私たちが使うことができるチャートや何らかの種類の式ですか?

ボーナス質問:私は現在Arduino Megaにこのコードを書いていますが、これは16ビットレジスタですが、これを私のATtiny(8ビットレジスタを持っています)に移植すると、プリスケーラの大きさを設定できます?

0
ATtiny4でもタイマプリスケーラがあります。
追加された 著者 Ignacio Vazquez-Abrams,
各タイマーセクションの「レジスタ説明」サブセクションに、セクションテキストの詳細な説明が記載されています。
追加された 著者 Ignacio Vazquez-Abrams,
追加された 著者 Ignacio Vazquez-Abrams,
ATtiny25、ATtiny45、ATtiny85は記憶量を除いて同じなので、他のトピックに関する議論は3つすべてに当てはまります。タイマーはデータシートに完全に記載されています。
追加された 著者 Ignacio Vazquez-Abrams,
いいえ、それはコンペアマッチでタイマーをクリアします。
追加された 著者 Ignacio Vazquez-Abrams,
データシートの内容以外は?
追加された 著者 Ignacio Vazquez-Abrams,
どのチップについて話していますか? ATtinyX5にはタイマー2がないので、 TCCR2B はありません。
追加された 著者 Ignacio Vazquez-Abrams,
20MHz/256 = 78.125kHzです。 ATmegaXX0のタイマ2は3つのプリスケーラビットのみを持ち、すべてが "CS2"で始まります。また、ATtinyX5のタイマー1は、通常のAVRタイマーとわずかに異なる高解像度タイマーであることに注意してください。
追加された 著者 Ignacio Vazquez-Abrams,
リンクしたサマリーではなく、完全なデータシートを使用する必要があります。 attiny85データシート
追加された 著者 Al.,
このステートメントでは(TCCR2B | = 1 << CS13 | CS12 | CS11 | CS10) - いいえ、それは完全に間違っています。 ビットに対してビットシフトを実行する必要があります。つまり: TCCR2B | =(1 << CS13)| (1 << CS12)| (1 << CS11)| (1 << CS10); または、 bit マクロを使用します: TCCR2B | = bit(CS13)|ビット(CS12)|ビット(CS11)|ビット(CS10);
追加された 著者 Nick Gammon,
タイマー2に関する私の画像は、視覚化のために便利なAtmega328Pにありますさまざまなビット。
追加された 著者 Nick Gammon,
それで私が使用できるのはCS13-10だけですか? 101ページのチャートを正しく理解していれば、1024のプリスケーラを設定するには4つのステートメントを含める必要がありますか?ステートメントのように(TCCR2B | = 1 << CS13 | CS12 | CS11 | CS10)ですか?
追加された 著者 Jack Strichman,
「高解像度タイマー」とはどういう意味ですか?また、なぜそれをATtinyX5と呼んでいますか?それはATtiny85とは違いますか?
追加された 著者 Jack Strichman,
私はArduino Megaでこれを最初にテストし、それをATtiny85に移植しますが、プリスケーラの設定方法を理解しようとしています。また、ドキュメントでは、 CS12 CLK を256で除算することになっていますが、クロック速度は20 MHz AKA 50 nsなので、
追加された 著者 Jack Strichman,
わかりましたので、もし私が1:7の比率を与える(1 << CTC1)をしたら、私はそれが正しいかどうか私に知らせることができますので、私はこれを理解するかどうかを見ることができますか?
追加された 著者 Jack Strichman,
私は本当にすみません、あなたが話していることを見ていますが、私はそれをコードにどのように変換しますか?今のように私は(1 << CS12)が意味することすら確信していません。それをどうやって教えてもらえますか?
追加された 著者 Jack Strichman,
それはどこにある?私は[データシート]( atmel.com/Images/… )何も見つかりませんでした。プリスケーラについて語っていますが、コードにどのような変更を加える必要はありません。
追加された 著者 Jack Strichman,
どのデータシートですか?私のATtinyはタイマ割り込みのプリスケーラ設定に関する情報を私に与えてくれません。
追加された 著者 Jack Strichman,

答えはありません

0