GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
がじぇるね岡宮です。
新人が1-Wireの温度センサDS18B20を使う機会がありまして、Arduino用のOneWireライブラリを使ったのですが、RL78用のヘッダ記述がなく動かなかったため、動くようにしたヘッダOneWire.hを貼り付けます。OneWireライブラリのフォルダにあるOneWire.hと差し替えればOKです。
追加したのは以下だけですので、他のアーキテクチャに影響を与えません。ただ、最新のOneWire.hに対して、貼り付けたOneWire.hが古い場合がありますので、その場合はそのOneWire.hに以下の記述を加えてもらえればOKです。
#elif defined(__RL78__)#define PIN_TO_BASEREG(pin) (((volatile uint8_t*)(ADDR_PORT_REG + (digitalPinToPort(pin)))))#define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin))#define IO_REG_TYPE uint8_t#define IO_REG_ASM#define DIRECT_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0)#define DIRECT_MODE_INPUT(base, mask) ((*((base)+0x20)) |= (mask))#define DIRECT_MODE_OUTPUT(base, mask) ((*((base)+0x20)) &= ~(mask))#define DIRECT_WRITE_LOW(base, mask) ((*((base))) &= ~(mask))#define DIRECT_WRITE_HIGH(base, mask) ((*((base))) |= (mask))
なお、DS18B20のデータラインにはプルアップが必要なようですが、sensors.begin();前にpinMode(2, INPUT_PULLUP);を呼べば当該ピンがプルアップされるので、外部プルアップも必要なくなります。