Category Archives: プログラム カテゴリ "プログラム"のRSS  

[jQuery]タグのnodeTypeで比較可能な値とその意味の一覧

2012年9月23日 (カテゴリ: JavaScript:)

jQueryを使うと以下の様な感じで、タグのnodetypeを取得/比較することがあります。 textNodes = $(‘div.main’).contents() .filter(function(){return this.nodeType === 3});textNodes = $(‘div.main’).contents() .filter(function(){return this.nodeType === 3}); NodeTypeとして指定できる値とその意味の一覧です。 NodeType一覧 ELEMENT_NODE == 1 HTMLタグ   ATTRIBUTE_…


続きを読む

エラー:”名前空間マネージャまたは XsltContext が必要です” が出た時の対処法

2012年9月17日 (カテゴリ: C#:)

表示されたエラーメッセージ 名前空間マネージャまたは XsltContext が必要です。 このクエリには、プレフィックス、変数、またはユーザー定義の関数があります名前空間マネージャまたは XsltContext が必要です。 このクエリには、プレフィックス、変数、またはユーザー定義の関数があります Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.Namespace Manager or XsltContext needed. This qu…


続きを読む

[HEW]コンパイル時,gcc -Wallのように全ての警告メッセージを表示させる方法

2012年9月12日 (カテゴリ: C:)

H8の統合開発環境であるHEWの話です。 C言語のコンパイラとして、例えばgccを指定する場合だと-Wallオプションを使用することで、未使用変数のチェックなどの数多くの警告を出してくれます。 一方、H8マイコン開発環境のHEWでは、デフォルトでは上記のような軽微な問題に対してメッセージを出してくれません。ですが、このふるまいはコンパイルオプションを変更する事で変えることが出来ます。 変更の手順は以下の通りです。 メニューバーより、ビルド->H8S,H8/300 Standard Toolchainを選択します。 オプション項目の欄から、インフォメーションメッセージを選択します。 &#8220…


続きを読む

12ステップで作る組込みOS自作入門: 1stステップの作成結果

2012年9月12日 (カテゴリ: C, H8, 読書メモ:)

読み始めた「12ステップで作る組込みOS自作入門」の本ですが、gccだと書籍の内容そのままで楽しくないので、H8の製造元であるルネサスが出しているIDEのHEWを使用して同じものを作ってみる事にします。 ターゲットのマイコンも,書籍ではH8/3069Fで説明していますが、H8/3694Fをターゲットに作成します。 このチップを使用する理由は、”たまたま手元にあったから”というだけです。 3069FはフラッシュROMが512Kbteなのに対して、3694Fのほうは32kByteしかないので途中で容量不足になりそうな気もしますが、出来るところまで作ってみて足りなくなったらそ…


続きを読む

変数の特定ビットだけを0に落とす時に、条件式を簡単に書く

2012年9月12日 (カテゴリ: C, C#, Java:)

※本記事の例はC言語ですが、java,C#などのビット操作が出来る言語に共通した話です。 まずは、ビット操作の基本的な考え方です。 たとえばcharがたの変数dataから、5bit目だけ0に落としたい場合を考えます。 この場合のコードをシンプルに書くと、以下のようになります char data = xxx; char ans = data & 0xDF;char data = xxx; char ans = data & 0xDF; これは、以下の論理式演算(ビット単位のand)を行って、特定ビットを落としています。 (data) xxxx xxxx and (0xdf) 11…


続きを読む

C#でAmazonのMWSを使用して,マケプレの出品情報を取得する

2012年9月10日 (カテゴリ: C#:)

Amazonでは、Marketplace WebService API(Amazon MWS)を使用することで、マーケットプレースに出品されている商品の出品情報を取得する事が出来ます。 今回は、VisualStudioよりC#を使用して、マケプレの出品情報を取得するプログラムを作成してみます。 (phpで同じことをしたい場合はこちらの記事を参考にしてください) Amazonマーケットプレイス徹底活用 サンプルプログラムの実効結果 今回のサンプルプログラムによって、以下の様なデータを取得できます。 結果が長いので一部省略しています。 ===============================…


続きを読む

[javascript]スクロールバーなどを含めたウィンドウのサイズを知る方法

2012年9月10日 (カテゴリ: JavaScript:)

備忘録としてのメモ。 window.open()で指定する幅と高さの解釈はブラウザによって異なり、ウィンドウ内部領域と見なすものもあれば、スクロールバーなどの枠を含めたウィンドウ全体の大きさと見なすモノも有る。 枠の中の実サイズを知りたい場合、innerWidth/Heightが使える場合はそれを使用すると簡単 resizeToはウィンドウ内部のサイズを指定するが、offsetWidth/Heightはスクロールバーなどの枠を含めたウィンドウ全体の大きさを返すので、その差でinnerWitdh/Heightを求める。 window.resizeTo()はChromeだと使用できない。 oute…


続きを読む

PHPでAmazonのMWSを使用して,マケプレの出品情報を取得する

2012年9月10日 (カテゴリ: PHP:)

PHPでASINを指定して、Amazon.co.jpのサイトより、マーケットプレースに出品されている商品の情報を取得するサンプルのプログラムです。 データの取得にはAmazon Marketplace WebService(MWS)を使用しています。 Amazonから提供されているクライアントライブラリはサンプルコードが添付されているのですが、 内容が冗長で分かり辛いので書き直しました。 実行手順: 下記のサイトより、クライアントライブラリをダウンロードします。(タイトル右のボタンをクリック) 商品API セクション クライアントライブラリ – PHP – バージョン …


続きを読む

[PIC]HI-TECH Cで、タイマー割り込みを行う(PIC16F84A)

2012年9月1日 (カテゴリ: C, PIC:)

PIC16F84Aには、TMRというタイマーモジュールがあり、これを利用と一定周期でタイマ割り込みをかけることが出来ます。 今回は、HI-TECH Cでタイマ割り込み処理を作成してみます。 ※アセンブラ(MPASM)でタイマー割り込み処理を行いたい場合は、こちらの記事を参考にして下さい。 [PIC]TMRモジュールを使用する(タイマー割り込み) TMRを使用したサンプルコードです。 これは,8Mhzで動作しているPICに対して,約10ミリ秒周期でタイマー割り込みをかけています。 #include <stdio.h> #include <htc.h>   #de…


続きを読む

[PIC]HI-TECH Cでコンフィギュレーションビットを指定する

2012年8月28日 (カテゴリ: C, PIC:)

PICのプログラムをアセンブリ(MPASM)で作成する場合は、CONFIG命令でコンフィギュレーションビットを指定するのですが、HI-TECH Cではこの設定は、__CONFIG()マクロで行います。 下記のプログラムは、__CONFIG()マクロの使用を使用したサンプルです。 #include <stdio.h> #include <htc.h>   void main( void ) { __CONFIG( FOSC_HS & WDTE_OFF & PWRTE_ON & CP_OFF ); …


続きを読む

[PIC]HI-TECH Cで一定時間スリープさせる

2012年8月27日 (カテゴリ: C, PIC:)

PICでは、HI-TECH Cコンパイラをを使用した、C言語による開発を行う事ができます。 C言語で開発を行う場合、プログラム中で一定時間処理をスリープさせるにはどうしたら良いでしょうか? HI-TECH Cの環境では、主に以下の4つの手法があります。 1. 空ループを回す 2. _delay()マクロを使用する 3. __delay_ms()マクロを使用する 4. __delay_us()マクロを使用する1. 空ループを回す 2. _delay()マクロを使用する 3. __delay_ms()マクロを使用する 4. __delay_us()マクロを使用する 上記のうち2,3,4のマクロはH…


続きを読む

PIC16F84AをC言語で,MPLAB IDE環境で開発する

2012年8月26日 (カテゴリ: C, PIC:, )

PIC16シリーズでは、入門者向けとしてよく使用されているPIC16F84Aですが、プログラムの格納エリアが小さいため通常はMPASMというアセンブラを使用してプログラムを行う事が多いです。 PICの製造メーカであるMicroChipが提供している統合開発環境のMPLABでも、標準ではアセンブラしか用意されていません。ですが、実はMicroChipはCのコンパイラも用意してくれているので、追加でコンパイラをインストールすれば、Cで開発する事も可能です。 今回はMPLABで、PIC16F84AのプログラムをC言語で開発する方法を説明します。 C言語によるPICプログラミング入門 MicroChi…


続きを読む

[C#]ネットワーク(NIC)の情報をプログラムで取得する

2012年8月23日 (カテゴリ: C#, 未分類:)

C#(.Net Framework)では、System.Net.NetworkInformationクラスを使用することで、NICの情報を取得する事が可能です。 下記のコードはIPCONFIGで出力されるような、IPアドレス/MACアドレス等の情報を出力しています。 送受信速度は取得できませんが、これは一定時間周期でBytesSentやBytesReceivedの値を取得し、一定時間内にどれだけ値が増えたかを元に速度を算出します。 例えば1秒周期で値を取得すれば、前回取得値との差分が、Byte/Secの単位として速度が算出できます。 using System.Net.NetworkInform…


続きを読む

[C言語]リンクリストを使用したプログラムの基礎

2012年8月19日 (カテゴリ: C, 未分類:)

構造体とmallocによるメモリの確保を利用した、リンクリストのサンプルプログラムです。 //———————————————————————- // File : linklist.c // Description : リンクリストを使用して、入力された点数の平均点を求める //———————————————————————- #include <stdio.h> #include <stdli…


続きを読む

[gcc]CPUID命令を使用して、CPUの情報を取得する

2012年8月13日 (カテゴリ: C:)

IntelのCPUでは、CPUIDというアセンブラの命令を使用することで、CPUの情報を入手する事が出来ます。 ここでいうCPU情報というのは、CPUのシリーズや、対応している命令セット、キャッシュ容量、プロセッサシリアルNoなどが含まれます。 このCPUID命令、C言語で普通にプログラムしていてはコールする事が出来ませんが、インラインアセンブラを使用することで利用する事が可能です。 今回は、gccのインラインアセンブラである”__asm__”命令を使用して、CPUID情報を取得する方法を説明します。 C言語からCPUID命令をコールする まずは、CPUID取得のベース…


続きを読む

[C言語入門]共用体でメモリを有効活用

2012年8月11日 (カテゴリ: C:)

今回は共用体です。 共用体の定義は以下のように行います。 union タグ名 { メンバ1; メンバ2; … };union タグ名 { メンバ1; メンバ2; … }; 一見すると構造体っぽい定義方法で、同じように見えるかもしれませんが、構造体と、共用体ではメモリ確保のされ方が異なります。 このことを確認するために、サンプルを1つ実行してみます。 #include <stdio.h>   struct t_CHARACTER { char c0; char c1; char c2; char c3; };   union u_CHA…


続きを読む

[gcc]C言語のプログラムからレジスタの内容をダンプする

2012年8月8日 (カテゴリ: C:)

C言語のコードをgccで開発している場合、インラインアセンブラを使う事でレジスタの内容をダンプさせることが出来ます。 以下のdefine文を定義しておくと、1命令書くだけで、全レジスタをダンプしてくれるので便利です。 #define DUMP_REGISTER() { \ register int eax asm( "%eax" ); \ register int ebx asm( "%ebx" ); \ register int ecx asm( "%ecx" ); \ register int edx asm( "%ed…


続きを読む

gccのアセンブル出力を解析する時は-gオプションが便利

2012年8月5日 (カテゴリ: C:)

アセンブラの勉強のために、gccで-Sオプションを使用してC言語のコードからアセンブラのコードを出力していたのですが、ソースコード中の何行目がどの出力に対応するのか分かり辛く、苦労していました。 もちろん注意深く読めば対応は分かるのですが、本質的でないところに時間が取られてしまい、本来の解析が出来なくなってしまうので非効率です。 と思ってたのですが、コンパイル時に-gオプションをつけ、デバッグ情報を付与させると、ソースとアセンブリの対応が出力される事に最近気づきました。 以下、試してみた結果です。 こちらがテストに使ったコード #include<stdio.h>   in…


続きを読む

[C言語入門]ポインタを理解する その1:メモリとポインタ変数入門

2012年8月4日 (カテゴリ: C:, )

今回の説明はポインタ変数です。 ポインタ変数は、特に難しいというわけではないのですが、C言語での表記の仕方の問題で混乱する人も多いので、今回はゆっくりと順を追って説明していきます。 ポインタの理解には、前提としてコンピュータの構成要素であるメモリ(主記憶装置とも言います)の理解が必要となるので、まずこちらから説明していきます。 変数はメモリ上でどのように保持されているのか? まずは,変数とメモリについての説明です。今まで、”i=10;”といったコードを”変数に値をセットする”と説明していましたが、変数の値はコンピュータ上でどのように管理されている…


続きを読む

[C言語入門]プリプロセッサ命令を理解する

2012年8月1日 (カテゴリ: C:)

今までの学習では、gccコマンドを使用してプログラムを作成してきました。 gccを使用すると、いきなり実行ファイル(.exeファイル)が生成されていたのですが、gcc(というかCコンパイラ)は内部的に以下の手順でexeファイルを作っています。 .cファイル   ↓ プリプロセス ↓   .iファイル   ↓ コンパイル ↓   .sファイル   ↓ アセンブル ↓   .oファイル   ↓ リンク ↓   .exeファイル.cファイル ↓ プリプロセス ↓ .iファイル ↓ コンパイル ↓ .sファイル ↓ アセン…


続きを読む