Surface Pro3 のタイプカバーが再入荷 リンクを取得 Facebook × Pinterest メール 他のアプリ 5月 31, 2015 息子の大学入学祝いにと購入したSurface Pro3 4月末までならばタイプカバーが付いてくるとの事で慌てて購入したものの、タイプカバーの在庫切れで出荷予定も未定が続いていましたが、ようやく再出荷が始まったようで、受け取りに行ってきました。 しかし、キャンペーンするなら事前にある程度の在庫を確保しておいて欲しいですよね。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
Raspberry Pi のsleep時間測定 5月 12, 2013 RaspberryPiのGPIO出力波形にてsleep処理時間を測定してみました。 ◆sleep() while(1){ *(gpio_regs + 0x7) = (0x1 << portnum); sleep(n); *(gpio_regs + 0x0A) = (0x1 << portnum); sleep(n); } n = 1 1秒から程遠い結果でした。原因は?? ◆usleep() while(1){ *(gpio_regs + 0x7) = (0x1 << portnum); usleep(n); *(gpio_regs + 0x0A) = (0x1 << portnum); usleep(n); } n = 1 n = 10 n = 100 n = 1000 凡そ80μsecのディレイが発生するようです。 ------------------------------------------------------------------ 追加測定 ◆nanosleep() nano.tv_nsec = n; nano.tv_sec = 0; while(1){ *(gpio_regs + 0x7) = (0x1 << portnum); nanosleep(&nano,NULL); *(gpio_regs + 0x0A) = (0x1 << portnum); nanosleep(&nano,NULL); } n=1~1000 n=10000 n=100000 nano.tv_nsec = 0; nano.tv_sec = 1; usleepと同様に約80use... 続きを読む
ARM用クロスコンパイラのビルド(Windows8+Cygwin) 6月 09, 2013 更新版はコチラへ ARM用のGCCを Windows8 上でビルドしてみたので備忘録として。 ◆ Cygwin のインストール setup.exeをダウンロードしてきて実行。 ドライブ直下が吉ですのでディフォルトのままで。 適当なフォルダを指定 通常のブロードバンド環境ならディフォルトでOK わざわざ海外サーバを選ぶ必要はないでしょ。 Devel以下を一括でインストールしてしまいます。 GCCのビルドには不要なものもインストールされてしまいますが、何が必須なのか良く分からないもので・・・ あとは「次へ」だけで無事にインストール完了 ◆関連ソースを入手 ① GCCコンパイラ ② binutils(アセンブラやリンカーなど) ③ Newlib(組み込み向け標準ライブラリ) GCC4.5以降は以下の演算ライブラリが必要らしいので入手。 ④ 任意精度計算ライブラリ(GMP) ⑤ 浮動小数点演算ライブラリ(MPFR) ⑥ 複素数演算ライブラリ(MPC) 今回入手したファイル(バージョン)は以下の通りです。 ダウンロードしたソースを展開します。(何処へ展開するかはご自由に) $ mkdir -p /usr/local/src/gnu $ cd /usr/local/src/gnu $ tar zxvf ~/Download/gcc-4.7.3.tar.gz : $ tar vxvf ~/Download/gmp-5.1.2.tar.bz2 ◆ビルド $export LANG=C この定義が無いとエラーが発生しました。 $export TARGET=arm-eabi $export PREFIX=/usr/local/gnu ①binutilsのビルド $ mkdir -p ~/tools/build-binutils-2.23.2 $ cd ~/tools/build-binutils-2.23.2 $ /usr/local/src/gnu/build-binutils-2.23.2/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib ... 続きを読む
2.4GHz版プロポ作製-PPM信号制御編 3月 10, 2012 プロポ用のPPM信号出力が可能になりました。 1.動作仕様 ボリューム1の値をAN0で読み出してCH1のパルス幅に反映。 ボリューム2の値をAN1で読み出してCH2のパルス幅に反映。 USB経由でPCへAN0、AN1の読み出し値と、CH1、CH2のパルス幅値を送信。 PPM信号仕様 チャンネル数 7チャンネル フレーム周期 22msec 各チャンネルのスタートパルス幅 300usec 2.動作波形 下波形はTimer割り込みで生成しているフレーム周期出力 上波形はCCPモジュールのコンペア割り込みで生成してるPPM信号出力 3.プログラムの概要 PICに搭載されていたCCPモジュールのコンペア機能のおかげでフローは非常にシンプルです。(プログラムはSimple is Best!) 1)PPMのフレーム周期でTimer1割り込みをグルグル回しておく。 2)PIC18シリーズの割り込みは2レベルしか無い(買ってから判ったので仕方ない・・・)ので、Timer1割り込みとはズレたタイミングから、PPM信号のフレーム開始位置を定義。 3)Timer1のカウント値とCCP1のコンペア値がマッチしたら割り込みを発生させる様にする。 4)CCP1割り込みの度に、ポート出力と次のCCP1割り込みの発生タイミングを書き換える。 これだけ! メインループ PPM信号のシンク期間中に処理時間が食われるADC変換とUSBへの送信を済ませるようにしています。 我ながら良く出来ました(笑) while(1) { #if defined(USB_INTERRUPT) // See HardwareProfile.h if(USB_BUS_SENSE && (USBGetDeviceState() == DETACHED_STATE)) ... 続きを読む
コメント
コメントを投稿