アフィリエイト広告を利用しています
Ad×Ad


Ad×Adは表示されるだけで報酬がもらえます。
以下から登録すると100ptもらえます。
 → アドアド -あなたの街の無料広告サイト-
検索
最新記事

広告

posted by fanblog

2021年02月01日

setup()

1231行目〜1234行目です。

void
setup()
{
   cli();

/* cli() について調べたのですが、Arduino IDEのリファレンスにはありませんでした。
  ATmega328のデータシート https://wiki.onakasuita.org/pukiwiki/?Arduino/%E3%83%94%E3%83%B3%E9%85%8D%E7%BD%AE
  によると、アセンブラでCLI命令があり、割り込み禁止ということがわかりました。おそらくArduino IDE
  のライブラリのどこかに定義してあるのでしょう。
*/
1236行目〜1245行目です。

   DDRB  |= 0x20;   // output  D13
   PORTB &= 0xdf;   // D13 = LOW
   DDRD  |= 0x2c;   // output  D2, D3, D5
   PORTD |= 0x04;   // D2 == HIGH  disconnect the funcgen

   UCSR0A = 0x02;   // uart async 230400bps 8bit non-parity 1 stopbit
   UBRR0H = 0x00;
   UBRR0L = 0x08;   
   UCSR0C = 0x06;
   UCSR0B = 0x18;

/*  DDRB、PORTB、DDRD、PORTD、UCSR0A、UBRR0H、UBRR0L、UCSR0C、UCSR0Bは、
  ATmega328のレジスタです。大文字の変数はレジスタということでしょうか。これもおそらくArduino
  IDEのライブラリのどこかに定義してあるのでしょう。
  UCSR0A、UBRR0H、UBRR0L、UCSR0C、UCSR0Bは、USB通信の初期設定をします。
  UCSR0A=0x02は、日本語データシートP138より、U2X=1のこと。日本語データシートP125 図24-2
 によると2分周期を通らない設定。
  UBRR0H = 0x00は、UBRR0の上位4ビット。
  UBRR0L = 0x08は、UBRR0の下位4ビットで、ボーレート分周器の分周値を8に設定
  以上のことから、ボーレイト=fOSC/(UBRR0+1)/2/4=16000000/(8+1)/2/4=222.2(kbps)になる。
  誤差3.5%で230.4kbpsのことだよね?。日本語データシートP136にfOSC=16MHzのときの設定値があり
 ました。 
  
  UCSR0C = 0x06は、非同期、パリティ無し、停止ビット1、UCSR0BのUCSZ2とでデータ長8ビット
  UCSR0B = 0x18は、受信許可、送信許可を設定
*/
1247行〜1251行です。

   txinit();
   rxinit();
   rminit(false);

   oscinit();

/*
  txinit()、rxinit()、rminit(false)、oscinit()を順次実行
*/

   // when the function generator seems not to be attached,
   // check again up to 2 more times.
   if (gen_cmd(0, 0) || gen_cmd(0, 0) || gen_cmd(0, 0))
       oscconfig |= 2;  // fgen is connected
   oscinfo(true, 0);
}

1253行〜1258行です。
/*
  gen_cmd(0,0)の戻りがtrueの時、oscconfig |= 2; // fgen is connected
  oscinfo(true, 0)を実行
*/
【このカテゴリーの最新記事】

この記事へのトラックバックURL
https://fanblogs.jp/tb/10510306
※ブログオーナーが承認したトラックバックのみ表示されます。

※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は30日以上新しい記事の更新がないブログに表示されております。