チラシの裏の電子工作

電子工作、PC関係の備忘録というか、チラシの裏

ArduinoでPCINT割込

Arduinoで割込といえばINT0/1だけど、沢山のピンで割込を使いたい時のメモ。
(Arduino0023/ATmega168P)

たまに使おうとすると、PCINT,PCMSK,PCIEの対応を忘れていて調べるのが非常にめんどくさいので、もう定型にしてしまおうというものぐさ。


#define SW_INT_PCICR ((1<<PCIE0)|(0<<PCIE2)|(0<<PCIE2))
#define SW_INT_PCMSK0 ((1<<PCINT0 )|(1<<PCINT1 )|(1<<PCINT2 )|(1<<PCINT3 )|(0<<PCINT4 )|(0<<PCINT5 )|(0<<PCINT6 )|(0<<PCINT7))
#define SW_INT_PCMSK1 ((0<<PCINT8 )|(0<<PCINT9 )|(0<<PCINT10)|(0<<PCINT11)|(0<<PCINT12)|(0<<PCINT13)|(0<<PCINT14))
#define SW_INT_PCMSK2 ((0<<PCINT16)|(0<<PCINT17)|(0<<PCINT18)|(0<<PCINT19)|(0<<PCINT20)|(0<<PCINT21)|(0<<PCINT22)|(0<<PCINT23))

ISR(PCINT0_vect){
    Serial.println("PCINT0_vect");
}
ISR(PCINT1_vect){
    Serial.println("PCINT1_vect");
}
ISR(PCINT2_vect){
    Serial.println("PCINT2_vect");
}

void setup(){
    //割込有効化
    PCICR  |=SW_INT_PCICR;
    PCMSK0 |=SW_INT_PCMSK0;
    PCMSK1 |=SW_INT_PCMSK1;
    PCMSK2 |=SW_INT_PCMSK2;

    delay(10000);

    //割込無効化
    PCICR  &=~SW_INT_PCICR;
    PCMSK0 &=~SW_INT_PCMSK0;
    PCMSK1 &=~SW_INT_PCMSK1;
    PCMSK2 &=~SW_INT_PCMSK2;
}

void loop(){}



美しくはないけど、割込をマトリクス状にしてしまったら解りやすいかと。
上の例では、PCINT0~3の割込を有効にしたり、取り消ししたり。
もっといい方法があればいいんだけども、ライブラリにするのもおっくう…

カテゴリ:電子工作

FreeNASをスリープさせる

FreeNASを導入したんですが、常時起動してる必要もない感じなので、要らん時は寝ててもらう。
基本的にfreeBSDと同じ。
acpiのS1-5で好きな状態にできるので、とりあえずS3あたりに。
ステートについてはwikipediaにて。

コンソールから

# acpiconf -s 3


とかやれば寝てくれるんだけど、いちいちめんどくさい。
電源ボタンで寝てもらおう。

現在の電源ボタンの設定は

# sysctl hw.acpi.power_button_state
hw.acpi.power_button_state: S5


S5って事は通常のシャットダウンになってる。

通例なら/etc/sysctl.confを編集すればいいはずなんだけど、再起動すると編集した内容が失われる…
というわけで、freeNASのGUIから。

システム→Tunable→Tunableの追加
  • 変動:hw.acpi.power_button_state
  • 値:S3
  • タイプ::Sysctl

これで再起動後から電源ボタンを押すとS3に移行できるようになった。

が、スリープから目覚めると様子がおかしい。
runtime went backwards、多分時計回りがおかしいという表示が1文字ずつゆっくり表示される。
最終的にカーネルパニック…spin lock held too long

なんとなく省電力周りが怪しい気がしたので、freeNASの詳細設定からpowerdをオフにしたら治った。

S3とかからでもWoLで起こせるので、そこそこ便利かな。

カテゴリ:PC

WN819 無線LANが遅い

イイヤマのIT8i-9P1150T-A、というか、OEM元のマウス型番ではWN891。
日常的に触っておらず、たまーに使う程度だったのですが、数日前に急激に無線LANが遅くなってることに気が付いた。

同じセグメントのPCに対して1Mbpsも出てない悲惨な有様だったので、対策してみた。

無線LANのドライバを見てみたら、いつの間にかドライバが更新されてた。
wn891_lan_driver.png

wn891を買ったのは2016年の正月、その後すぐWindows10にアップグレードしたので、2016/04/01のドライバは自分がインストールしてない、、、はず。(曖昧)
というわけで、古いバージョンに変更してみたら普通に動き出したので、これでいいことにしよう。

カテゴリ:PC

HD-WLU3/R1のベンチを取ってみた

USB3.0に対応した、HDDが2台内蔵されている外付けHDD。
RAID0にも1にも対応しています。

BUFFALO RAID1対応 USB3.0用 外付けハードディスク 2ドライブモデル 2TB HD-WL2TU3/R1J



で、気になるのはRAID0の速度。
どうせ大した速度はでないってわかってても測ってみたくなるのが人間の性ってもんで…

まずはRAID1。
HD-WLU3R1(RAID1).png

次にRAID0。
HD-WLU3R1(RAID0).png

ですよねー。
RAID0で使うぐらいなら、外付けSSDにした方がいいよね。

カテゴリ:製品レビュー&比較

MOのベンチマークをとってみた

今更こんなことしてなんになるのかって、まあ、趣味ですよ。

計測に仕様したドライブはLMO-F1354U2。
一応GIGAMO。

230MBのメディアで計測。
LMO-F1354U2.png


1.3GBのメディアで計測。
LMO-F1354U2_1300MB.png

案外速度差出るもんなんだなー…


DSC_0280.jpg

今回の計測のために在庫の1.3GBメディアを開封したけども、まだ辛うじて手に入るのね。

SONY EDM-G13CDF 3.5MOメディア 1.3GB GIGAMO WIN95





カテゴリ:製品レビュー&比較

前のページ 次のページ

FC2Ad