日本語が、大好きです。(Sorry, Japanese Only.)
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30    
<< 2025 April >>

no fun nolife
NEW ENTRIES
RECENT COMMENTS
CATEGORIES
rss
 はてなアンテナに追加
 はてなRSSに登録
 Bloglinesで閲読登録
 Subscribe with livedoor Reader
 Add to Google
 My Yahoo!に追加
LINK
ARCHIVES
music
LOGIN
現在のモード: ゲストモード
USER ID:
PASS:
logout

 節分とか言ってっけど、「分かれて」いるから「節」なんじゃないだろうか。いや、節は厳密にはくっついているのか。「ここで分ける」的な目印、それが「節」。つまり、「節分」とは「節目を分ける」行為に他ならず、世の中の「なんかここで分けられそうだなー」ってやつをバッサリ分けるのが本来の節分ではなかろうか?たとえば切手のあのなんかついてる点々とか、バッサリ分けちゃう。板チョコの、なんだかいまいち精度が出せない感じの節目とか、きっちり分ける。こう、ニクロム線を熱く熱して溶かしながら慎重に。だって節分だから!!。タイガーウッズと妻のエリンさんとか、もう節目がバッチリついてますよね、これもバッサリ分けまs(5番アイアン)


 (頭から血を流しながら)あーえっと、前置きがうっかり長くなってしまいましたが、Arduinoのライブラリを作る際に、ライブラリ内でpinレジスタを使う方法とか。

<---------------- ここから本文です ---------------->


 Arduinoのデジタル入力には関数「digitalRead()」が用意されています。ピン番号を指定すればそこの値をゼロイチで返してくれるという、大変わかりやすいものなのです。ですが、これを使ってタクトスイッチの値を読み込む場合、「バウンジング」っていう、スイッチ特有のノイズに対応しなくちゃいけないらしい。詳しくは『Arduinoをはじめよう』のp037~を参照のこと。

 まあ、平たく言えば「機械なんでどうしてもノイズが乗るから、ソフト側で読み捨てて」ってこと。それはまあ、やるべきなんだろうなあって思うんですが、これをdigitalRead()でやるとなると結構めんどくさい。一個一個読み込んでバウンジング解消とか、やってらんない。

 ピンの値を一括で読み込むことができれば、バウンジングも一括でできる。そいで、Arduinoにはそれができる機能がある。それが、PINレジスタ。ATmegaのpin入力を、複数同時に読込/設定できる。(『Arduinoをはじめよう』p111)

 さて、これを使えばハウジング対処を一括でやるクラスが作れる!!!って思ったんだけど、コンパイルエラー。どうやら、クラスで使うためにはincludeを追加する必要がある様子。まあ、「[Arduino]ライブラリ/クラスを作ってみる」でも書いた「クラス内で既存ライブラリを使う方法」と同じなんですけどね。includeの置いてある場所が、「[Arduinoディレクトリ]/hardware/tools/avr/avr/include/avr」になってます。

ソースにするとこんな感じ
// pinレジスタを使うためのinclude
#include <avr/io.h>

// ビット定数(B01010101等)を使うためのヘッダ
#include "binary.h"

ついでに、ビット定数が使えなかったので、これのヘッダも。

Recent Entries from Same Category









    
処理時間 0.66248秒