ボリュームの値を読む 第2話(最終話)

スラマッマラム N.C.です。  今日は、前回の続きです。・十分な電圧 n-bitのAD変換を行うならVref/2^nの分解能を得ることができます。読み取りたい電圧をVreadとおくと、 Vread-Vref/2^(n+ … “ボリュームの値を読む 第2話(最終話)”の続きを読む

ボリュームの値を読む 第1話

スラマッマラム N.C.です。  最近のブログの更新速度は半端ないですね。しかし、ロボット関連の記事がありません。しかも、何のサークルなのかよくわからない記事が増えてきてしまいました。新入生のみなさん、うちのサークルは一 … “ボリュームの値を読む 第1話”の続きを読む

AVRはAVRはmain関数を抜け出してみる

main関数を抜け出したらどこに行くんだろう?、ってミサカはミサカはAVRを心配してみたり。前回の記事に書きましたがmain関数の最後にはret命令があります。パソコン上のプログラムであればこの後に少し処理を行ってから( … “AVRはAVRはmain関数を抜け出してみる”の続きを読む

こんなかたちで終わることしかできない私を許して下さい

今 万感の思いを込めて 命令が実行される今 万感の思いを込めて PC(プログラムカウンタ)が進むひとつのプログラムは終わり また新しいプログラムが始まるさらばAVRさらばmain関数さらば少年の日よ(十分な間を置く)(G … “こんなかたちで終わることしかできない私を許して下さい”の続きを読む

怪談:初期化されない.dataセクション

これは本当にあった話ですが…その日、私はいつも通りにプログラムを書いていたんですよ。すると、.dataセクションに置く必要のあるデータがあったので、.section .dataFOO: .byte 0x01, 0x02, … “怪談:初期化されない.dataセクション”の続きを読む

怪談前夜

LD「まどか、君はセクションっていう言葉を知ってるかい?   簡単に言うと、リンカがメモリ配置をするときの基準さ」意外と知らない人が多いかもしれませんが、リンカの仕事は基本的にはメモリ配置の決定とシンボルの名前解決、そし … “怪談前夜”の続きを読む

命令セットに騙される前のバカな私を、助けてあげてくれないかな?

AS「騙すという行為自体、僕たちには理解できない。仕様の理解不足から生じた判断ミスを後悔する時、何故か人間は、アセンブラを憎悪するんだよね」16ビットのデータに1を加算するとき、AVRでは一気に16ビットデータを扱うこと … “命令セットに騙される前のバカな私を、助けてあげてくれないかな?”の続きを読む

アライメントのなく頃に 目明し編

AS「君の速さに対する情熱は、保守性を凌駕した。さあ、解き放ってごらん。その新しい技術を!」 通常、.alignというPseudo命令はバイト境界を調整するために使います。例えば、32ビットのデータを4の倍数のアドレスに … “アライメントのなく頃に 目明し編”の続きを読む

alignの罠

あ…ありのまま 今 起こった事を話すぜ!『データのアライメントをしようと思ったらいつのまにかメモリを大量消費していた』コンパイルミスだとかリンカのバグだとかそんなチャチなもんじゃあ 断じてねえもっと恐ろしいものの片鱗を味 … “alignの罠”の続きを読む

1の個数を数える(in assembler)

マイコンなどの低レベル処理をしているとビットを意識した処理を行うことが多いです。パリティ、CRCなどが代表的です。 今回はその仲間である「1となっているビットの個数を数える」方法の高速化を紹介します。 通常は1ビットずつ … “1の個数を数える(in assembler)”の続きを読む